Jump to content
Sign in to follow this  
rebortec

Erro Json :s

Recommended Posts

rebortec

Boas Pessoal

Estou a obter um erro num script js ajax que é o seguinte:

Houve um erro Invalid JSON: ERRO:erro devido aparsererror condition.

O código que tenho é:

registo.php

<div id="msg">

</div>
<div id="registo">
<form name="cadastro" id="cadastro" method="post" enctype="multipart/form-data" action="scripts/script_envio_registo.php">

<fieldset>
      <h3>Registe-se Gratuitamente...</h3>
      
      <p> Introduza os dados relativos á sua empresa e aumente a visíbilidade da mesma... </p>
      <table width="487" border="0">
  <tr>
    <td> <label for="nome">Nome da Empresa*</label>
         <input type="text" id="nome" name="nome" required="required" title="Digite seu nome. Este campo é obrigatório."  /> </td>
         
    <td><label>Site</label>
         <input type="text" name="web" id="web"   /></td>
  </tr>
  <tr>
    <td><label>Email*</label>
         <input type="text" name="email" id="email" required="required" title="Digite o seu email."  /></td>
    <td><label>Morada*</label>
         <input type="text" name="morada" id="morada" required="required" title="Indique a sua morada" /></td>
  </tr>
  <tr>
    <td> <label>Distrito*</label>
         <input type="text" name="distrito" id="distrito" required="required" title="Indique o seu Distrito"  /></td>
    <td><label>Concelho*</label>
         <input type="text" name="concelho" id="concelho" required="required" title="Indique o seu Cancelho"   /></td>
  </tr>
  <tr>
    <td><label>Código-Postal*</label>
         <input type="text" name="cp" id="cp" required="required" title="Indique o seu Código-Postal" /></td>
    <td><label>Telefone</label>
         <input type="text" name="telefone" id="telefone" title="indique o seu nº de telefone" /></td>
  </tr>
  <tr>
    <td> <label>Fax</label>
         <input type="text" name="fax" id="fax" title="Indique o seu número de Fax" /></td>
    <td><label>Telemóvel</label>
         <input type="text" name="telemovel" id="telemovel" title="Indique o seu nº de telemóvel" /></td>
  </tr>
  <tr>
    <td><label>Localidade*</label>
      <input  id="localidade" type="text" name="localidade" required="required" /></td>
    </tr>
  <tr>
    <td colspan="2"><label>Categoria*</label>
      <input  id="categoria" type="text" name="categoria" required="required" /></td>
    </tr>
  <tr>
    <td colspan="2"><label>Palavras-Chave</label>
      <input type="text" id="palavras_chave"  name="palavras_chave" /></td>
    </tr>
    <tr>
    <td colspan="2"><label>Descrição</label>
      <textarea name="descricao" id="descricao" required="required" cols="" rows=""></textarea></td>
    </tr>
</table>

     
      
      
      <input type="submit" name="submit" id="submit" value="submit"  />
      <!--<input type="submit" class="submit" id="enviar" value="Enviar" onclick="validcadastro.reset(); return false"></input>-->
      
    </fieldset>
</form>

ajax_envio.js

$(document).ready(function() {
$('#msg').hide();					

$('#submit').click(function(e) {

	e.preventDefault();

	var valid = '';
	var required = 'é inválido(a)';
	var nome = $('input#nome').val();
	var web = $('input#web').val();
	var email = $('input#email').val();
	var morada = $('input#morada').val();
	var distrito = $('input#distrito').val();
	var concelho = $('input#concelho').val();
	var cp = $('input#cp').val();
	var localidade = $('input#localidade').val();
	var telefone = $('input#telefone').val();
	var fax = $('input#fax').val();
	var telemovel = $('input#telemovel').val();
	var categoria = $('input#categoria').val();
	var palavras_chave = $('input#palavras_chave').val();
	var descricao = $('textarea#descricao').val();

	if (nome == '' || nome.length <=4){
		valid = '<p>O nome' +required+ '</p>';	
	}
	if (!email.match(/^([a-z0-9._-]+@[a-z0-9._-]+\.[a-z]{2,4}$)/i)){
		valid += '<p>O email' +required+ '</p>';
	}
	if (morada == '' || morada.length <=5){
		valid = '<p>A morada' +required+ '</p>';
	}
	if (distrito == '' || distrito.length <=2){
		valid = '<p>O distrito' +required+ '</p>';
	}
	if (concelho == '' || concelho.length <=2){
		valid = '<p>O concelho' +required+ '</p>';
	}
	if (cp == '' || cp.length <=7){
		valid += '<p>O código postal' +required+ '</p>';
	}
	if (localidade == '' || localidade.length <=2){
		valid = '<p>A localidade' +required+ '</p>';
	}
	if (categoria == '' || categoria.length <=5){
		valid = '<p>A categoria' +required+ '</p>';
	}
	if (descricao == '' || descricao.length <=5){
		valid = '<p>A descrição' +required+ '</p>';
	}
	if (valid !== ''){
		$("#msg").removeClass().addClass('error')
			.html('Por favor reveja os campos inválidos' + valid).fadeIn('slow');
	}
	else{


		$("#msg").removeClass().addClass('processing')
		.html('Espere por favor...').fadeIn('slow');

		var formData = $('form').serialize();
		submitForm(formData);
	}

  });
});

function submitForm(formData){

$.ajax({
	   type: 'POST',
	   url: 'scripts/script_envio_registo.php',
	   data: formData,
	   dataType: 'json',
	   cache: false,
	   timeout: 7000,
	   success: function(data) {
		        
				$("#msg").removeClass().addClass((data.error === true) ? 'error' : 'success')
	   								.html(data.msg).fadeIn('slow');

									if ($('#msg').hasClass('success')){

										setTimeout("$('#msg').fadeOut('fast')", 5000);

									}
		   
	   },
	   		error: function(XMLHttpRequest, textStatus, errorThrown){

						$('#msg').removeClass().addClass('error')
										.html('<p>Houve um erro<strong> ' + errorThrown + 
											  '</strong> erro devido a<strong>' + textStatus +
											  '</strong> condition.</p>').fadeIn('fast');
			},
			complete: function(XMLHttpRequest, status){

			$('form')[0].reset();

			}
	   
	   });
};

envia_registo.php

<?php include "../Connections/config.php"?>
<?php



$nome = trim($_POST['nome']);
$web  = trim($_POST['web']);
$email = trim($_POST['email']);
$morada = trim($_POST['morada']);
$distrito = trim($_POST['distrito']);
$concelho = trim($_POST['concelho']);
$cp = trim($_POST['cp']);
$telefone = trim($_POST['telefone']);
$fax = trim($_POST['fax']);
$telemovel = trim($_POST['telemovel']);
$categoria = trim($_POST['categoria']);
$palavras_chave = trim($_POST['palavras_chave']);
$descricao = trim($_POST['descricao']);
$localidade = trim($_POST['localidade']);


/* Vamos checar algum erro nos campos */

if ((!$nome) || (!$email) || (!$morada) || (!$distrito) || (!$concelho) || (!$cp) || (!$categoria) || (!$localidade)){

    echo "Não foi possível completar o seu registo, reveja os campos abaixo: <br /><br />";

    if (!$nome){

        echo "Nome é óbrigatório.<br />";

    }

    if (!$email){

        echo "Preencha o campo email.<br /> <br />";

    }

    if (!$morada){

        echo "A morada é um campo obrigatório.<br /><br />";

    }

    if (!$distrito){

        echo "O distrito é um campo obrigatório.<br /><br />";

    }

	if (!$concelho){

        echo "O Concelho é um campo obrigatório.<br /><br />";

    }

	if (!$cp){

        echo "O Código-Postal é um campo obrigatório.<br /><br />";

    }

	if (!$categoria){

        echo "A Categoria é um campo obrigatório.<br /><br />";

    }
    if (!$localidade){
        echo "A Localidade é um campo obrigatório.<br /><br />";

    }
    

   

}else{

    /* Vamos checar se o nome de Usuário escolhido e/ou Email já existem no banco de dados */

    $sql_email_check = mysql_query(

        "SELECT * FROM empresa WHERE email='$email'"

        );

    $sql_nome_check = mysql_query(

        "SELECT * FROM empresa WHERE nome='$nome'"

        );

    $eReg = mysql_fetch_array($sql_email_check);
    $uReg = mysql_fetch_array($sql_nome_check);

    $email_check = $eReg[0];
    $nome_check = $uReg[0];

    if (($email_check > 0) || ($nome_check > 0)){

        echo "<strong>ERRO</strong>: <br /><br />";

        if ($email_check > 0){

            echo "Este email já está registado.<br /><br />";

            unset($email);

        }

        if ($nome_check > 0){

            echo "Este nome já está registado.<br /><br />";

            unset($nome);

        }

        
    }else{

        /* Se passarmos por esta verificação ilesos é hora de
        finalmente cadastrar os dados. Vamos utilizar uma função para gerar a senha de
        forma randômica*/

        function makeRandomPassword(){

            $salt = "abchefghjkmnpqrstuvwxyz0123456789";
            srand((double)microtime()*1000000);
            $i = 0;

            while ($i <= 7){

                $num = rand() % 33;
                $tmp = substr($salt, $num, 1);
                $pass = $pass . $tmp;
                $i++;

            }

            return $pass;

        }

        $senha_randomica   =  makeRandomPassword();
        $senha = md5($senha_randomica);

        // Inserindo os dados no banco de dados

        

        $sql = mysql_query(

                "INSERT INTO empresa
                (nome, email, morada, distrito, concelho, cp, categoria, localidade, senha, descricao)

                VALUES
                ('$nome', '$email', '$morada', '$distrito', '$concelho', '$cp', '$categoria', '$localidade', '$senha', '$descricao')")

                or die( mysql_error()

                );

        if (!$sql){

            echo "Ocorreu um erro ao criar sua conta, entre em contato.";

        }else{

            $nome = mysql_insert_id();

            // Enviar um email ao usuário para confirmação e ativar o cadastro!

            $headers = "MIME-Version: 1.0\n";
            $headers .= "Content-type: text/html; charset=iso-8859-1\n";
            $headers .= "From: PT Comérico - Webmaster<email@ptcomercio@ptcomercio.com>";

            $subject = "Confirmação de cadastro - ptcomercial.com";
            $mensagem  = "Olá,<br />
            Obrigado pelo seu registo em ptcomercial.com, <a href='http://www.ptcomercial.com'>
            http://www.ptcomercial.com</a>!<br /> <br />

            Para confirmar seu cadastro e ativar sua conta em nosso site, podendo acessar à
            áreas exclusivas, por favor clique no link abaixo ou copie e cole na barra de
            endereço do seu navegador.<br /> <br />

            <a href='http://ptcomercial.com/ativar.php?id={$nome}&code={$senha}'>

http://ptcomercial.com/ativar.php?id={$nome}&code={$senha}

            </a>

            <br /> <br />
            Após a ativação de sua conta, você poderá ter acesso ao conteúdo exclusivo
            efetuado o login com os seguintes dados abaixo:<br > <br />

            <strong>nome</strong>: {$nome}<br />
            <strong>Senha</strong>: {$senha_randomica}<br /> <br />

            Obrigado!<br /> <br />

            Webmaster<br /> <br /> <br />
            Esta é uma mensagem automática, por favor não responda!";


            mail($email, $subject, $mensagem, $headers);

            echo "Foi enviado para seu email - ( ".$email." )(".$senha.") um pedido de
            confirmação de cadastro, por favor verifique e sigas as instruções!";

        }

    }
}


               

        

?>

Podem-me ajudar no que está a acontecer de errado?

Share this post


Link to post
Share on other sites
rebortec

Posso mudar para text ou html, mas o que teria de mudar no js?

eu simplesmente queria que mostrasse a resposta do php

Share this post


Link to post
Share on other sites
rebortec

Troquei jSON por html

Fica parado aqui:

$("#msg").removeClass().addClass('processing')
		.html('Espere por favor...').fadeIn('slow');

Já Mudei, fica parado aqui

$("#msg").removeClass().addClass('processing')
		.html('Espere por favor...').fadeIn('slow');

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.