Ir para conteúdo
Fórum Script Brasil
  • 0

Erro: Junção de php com js


lucke

Pergunta

Fala galera.. to precisando de uma ajudinha aqui.

A questão é a seguinte:

Tenho um formulário de cadastro;

Esse formulário é validado por um JS;

No JS, é que tem a "junção" de php com js..A como posso explicar..O JS é que envia os dados para o PHP.

Acho que pode ser um erro besta, mas resolvi postar aqui a dúvida.Vejam:

Formulário:

<h3>Formulário</h3>
      <form id="cad" method=POST action="?page=cadastro&ac=cad">
          <div class="success"> Cadastro efetuado! <strong>Por favor, abra seu email e confirme sua conta.</strong> </div>
          <fieldset>
            <div>
              Nome completo:<label class="name">
                <input type="text" name="name" value="Seu nome e sobrenome">
                <br>
                <span class="error">*Nome inválido.</span> <span class="empty">*Campo obrigatório.</span> </label>
            </div>
                        <div>
              Senha<label class="nome">
                <input type="password" name="senha" value="">
                <br>
                <span class="error">*Senha inválido.</span> <span class="empty">*Campo obrigatório.</span> </label>
            </div>
            <div>
              Email:<label class="email">
                <input type="email" name="email" value="Email:">
                <br>
                <span class="error">*Email inválido.</span> <span class="empty">*Campo obrigatório.</span> </label>
            </div>
            <div>
              Telefone(DDD+TEL):<label class="phone">
                <input type="tel"  name="telefone" value="Telefone:">
                <br>
                <span class="error">*Telefone inválido.</span> <span class="empty">*Campo obrigatório.</span> </label>
            </div>
     <div>
              Endereço<label class="nome">
                <input type="email" name="endereco" value="Endereço completo">
                <br>
                <span class="error">*Endereço inválido.</span> <span class="empty">*Campo obrigatório.</span> </label>
            </div>
            <div>
            Bairro<label class="nome">
                <input type="email" name="bairro" value="Bairro">
                <br>
                <span class="error">*Bairro inválido.</span> <span class="empty">*Campo obrigatório.</span> </label>
            </div>
            <div>
            Número( + complemento caso tenha):<label class="phone">
                <input type="email" name="numero" value="Numero da casa">
                <br>
                <span class="error">*Numero inválido.</span> <span class="empty">*Campo obrigatório.</span> </label>
            </div>
 <div>
            Cep:<label class="phone">
                <input type="email" name="cep" value="Cep">
                <br>
                <span class="error">*Cep inválido.</span> <span class="empty">*Campo obrigatório.</span> </label>
            </div>
             <div>
            CPF:<label class="phone">
                <input type="email" name="cpf" value="CPF">
                <br>
                <span class="error">*CPF inválido.</span> <span class="empty">*Campo obrigatório.</span> </label>
            </div>
            <div>
        <input type=checkbox name=termos><b><font color=white>Li e concordos com os termos</font><BR></b><b><font color=red>Atenção: leia os termos ao lado e clique na  caixinha acima</font> </b>
            <div class="buttons-wrapper"><a class="button" data-type="submit">Cadastrar-me!</a></div>
          </fieldset>
        </form>

Arquivo JS:

//forms
;(function($){
	$.fn.forms=function(o){
		return this.each(function(){
			var th=$(this)
				,_=th.data('forms')||{
					errorCl:'error',
					emptyCl:'empty',
					invalidCl:'invalid',
					notRequiredCl:'notRequired',
					successCl:'success',
					successShow:'4000',
					mailHandlerURL:'bat/cad.php',
					ownerEmail:'support@template-help.com',
					stripHTML:true,
					smtpMailServer:'localhost',
					targets:'input,textarea',
					controls:'a[data-type=reset],a[data-type=submit]',
					validate:true,
					rx:{
						".name":{rx:/^[a-zA-Z'][a-zA-Z-' ]+[a-zA-Z']?$/,target:'input'},
						".state":{rx:/^[a-zA-Z'][a-zA-Z-' ]+[a-zA-Z']?$/,target:'input'},
						".email":{rx:/^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i,target:'input'},
						".phone":{rx:/^\+?(\d[\d\-\+\(\) ]{5,}\d$)/,target:'input'},
						".fax":{rx:/^\+?(\d[\d\-\+\(\) ]{5,}\d$)/,target:'input'},
						".message":{rx:/.{20}/,target:'textarea'}
					},
					preFu:function(){
						_.labels.each(function(){
							var label=$(this),
								inp=$(_.targets,this),
								defVal=inp.val(),
								trueVal=(function(){
											var tmp=inp.is('input')?(tmp=label.html().match(/value=['"](.+?)['"].+/),!!tmp&&!!tmp[1]&&tmp[1]):inp.html()
											return defVal==''?defVal:tmp
										})()
							trueVal!=defVal
								&&inp.val(defVal=trueVal||defVal)
							label.data({defVal:defVal})
							inp
								.bind('focus',function(){
									inp.val()==defVal
										&&(inp.val(''),_.hideEmptyFu(label),label.removeClass(_.invalidCl))
								})
								.bind('blur',function(){
									_.validateFu(label)
									if(_.isEmpty(label))
										inp.val(defVal)
										,_.hideErrorFu(label.removeClass(_.invalidCl))
								})
								.bind('keyup',function(){
									label.hasClass(_.invalidCl)
										&&_.validateFu(label)
								})
							label.find('.'+_.errorCl+',.'+_.emptyCl).css({display:'block'}).hide()
						})
						_.success=$('.'+_.successCl,_.form).hide()
					},
					isRequired:function(el){
						return !el.hasClass(_.notRequiredCl)
					},
					isValid:function(el){
						var ret=true
						$.each(_.rx,function(k,d){
							if(el.is(k))
								ret=d.rx.test(el.find(d.target).val())
						})
						return ret
					},
					isEmpty:function(el){
						var tmp
						return (tmp=el.find(_.targets).val())==''||tmp==el.data('defVal')
					},
					validateFu:function(el){
						el.each(function(){
							var th=$(this)
								,req=_.isRequired(th)
								,empty=_.isEmpty(th)
								,valid=_.isValid(th)

							if(empty&&req)
								_.showEmptyFu(th.addClass(_.invalidCl))
							else
								_.hideEmptyFu(th.removeClass(_.invalidCl))

							if(!empty)
								if(valid)
									_.hideErrorFu(th.removeClass(_.invalidCl))
								else
									_.showErrorFu(th.addClass(_.invalidCl))
						})
					},
					getValFromLabel:function(label){
						var val=$('input,textarea',label).val()
							,defVal=label.data('defVal')
						return label.length?val==defVal?'nope':val:'nope'
					}
					,submitFu:function(){
						_.validateFu(_.labels)
						if(!_.form.has('.'+_.invalidCl).length)
							$.ajax({
								type: "POST",
								url:_.mailHandlerURL,
								data:{
									nome:_.getValFromLabel($('.name',_.form)),
									email:_.getValFromLabel($('.email',_.form)),
									phone:_.getValFromLabel($('.phone',_.form)),
									fax:_.getValFromLabel($('.fax',_.form)),
									state:_.getValFromLabel($('.state',_.form)),
									message:_.getValFromLabel($('.message',_.form)),
									owner_email:_.ownerEmail,
									stripHTML:_.stripHTML
								},
								success: function(){
									_.showFu()
								}
							})
					},
					showFu:function(){
						_.success.slideDown(function(){
							setTimeout(function(){
								_.success.slideUp()
								_.form.trigger('reset')
							},_.successShow)
						})
					},
					controlsFu:function(){
						$(_.controls,_.form).each(function(){
							var th=$(this)
							th
								.bind('click',function(){
									_.form.trigger(th.data('type'))
									return false
								})
						})
					},
					showErrorFu:function(label){
						label.find('.'+_.errorCl).slideDown()
					},
					hideErrorFu:function(label){
						label.find('.'+_.errorCl).slideUp()
					},
					showEmptyFu:function(label){
						label.find('.'+_.emptyCl).slideDown()
						_.hideErrorFu(label)
					},
					hideEmptyFu:function(label){
						label.find('.'+_.emptyCl).slideUp()
					},
					init:function(){
						_.form=_.me
						_.labels=$('label',_.form)

						_.preFu()

						_.controlsFu()

						_.form
							.bind('submit',function(){
								if(_.validate)
									_.submitFu()
								else
									_.form[0].submit()
								return false
							})
							.bind('reset',function(){
								_.labels.removeClass(_.invalidCl)
								_.labels.each(function(){
									var th=$(this)
									_.hideErrorFu(th)
									_.hideEmptyFu(th)
								})
							})
						_.form.trigger('reset')
					}
				}
			_.me||_.init(_.me=th.data({forms:_}))
			typeof o=='object'
				&&$.extend(_,o)
		})
	}
})(jQuery)
$(window).load(function(){
			 $('#cad').forms({
 	     ownerEmail:'#'
 	     })
   })

Arquivo php (cad.php)(OBS: Aqui a citação ta sem o $sql, mas aqui no meu código tem o $sql):

<?php
$nome = $_POST['nome'];
$senha = $_POST['senha'];
$email = $_POST['email'];
$telefone = $_POST['telefone'];
$endereco = $_POST['endereco'];
$bairro = $_POST['bairro'];
$numero = $_POST['numero'];
$cep = $_POST['cep'];
$cpf = $_POST['cpf'];
$termos = $_POST['termos'];
	try{
		if($sql){
			throw new Exception('mail failed');
		}else{
			echo 'mail sent';
		}
	}catch(Exception $e){
		echo $e->getMessage() ."\n";
	}
?>

Lembrando que peguei esse js e tentei adaptar, por que ele é usado na verdade para validar um form de contato.

Ajuda please!

Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...