Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Guilherme Oderdenge

[Resolvido] Retornar valor booleano através de data (jQuery + &#0

Recommended Posts

Senhores.

 

Tenho uma espécie de cadastro utilizando PHP e o $.ajax, do jQuery. Até aqui, tudo bem. Mas agora estou trabalhando na exibição dos erros existentes no formulário de cadastro - um exemplo disso é um campo vazio. Se estiver, exibe uma mensagem indicando.

 

Consigo fazer toda a parte server-side, mas não consigo exibir o erro no $.ajax. Vejam o seguinte:

           $('#server-install').submit(function(e){
              e.preventDefault(); 
              server = $(this).serialize();
              $.ajax({
                 type: 'POST',
                 url: 'tgo-model/tgo-install.php',
                 dataType: 'html',
                 data: server,
                 beforeSend: function(){
                     $('#server-install input[type=submit]').attr({
                         value : 'Processando...',
                         disabled : 'disabled'
                     });
                 },
                 success: function(data){
                     if( data == false ){
                         $('html').html(data);
                     } else {
                         /** faça algo **/
                     }
                 }
              });
           });

 

A minha ideia é a seguinte: lá no PHP, quando um erro for estabelecido, ele vai dar um return false, e eu quero que através do ajax, se o false existir, ele exiba a mensagem, senão, execute uma outra ação. Já pesquisei bastante na Internet e n-a-d-a.

 

E antes que perguntem qual é o erro, eu digo: ele não consegue resgatar o "true" do "return" que vêm do PHP. É óbvio - ele está resgatando o echo da mensagem. E é pra fazer isso, mas antes de resgatar esse echo, eu quero saber se é um erro.

 

Entenderam?

 

Desde já, agradeço.

Um abraço!

Compartilhar este post


Link para o post
Compartilhar em outros sites

para fazer o erro, você deve dar um echo do erro.

 

ajax só encherga o texto retornado.

Faça o seguinte no php:

 

SE tudo certo

echo alguma coisa

SE algum erro

echo 'erro';

 

 

ai você ve se tem essa string erro, e exibe o erro.

Uma forma de poder retornar 'várias variaveis', é trabalhar com retorno do tipo jSON

Compartilhar este post


Link para o post
Compartilhar em outros sites

Entendi, William. Mas daí vou ter que manipular os erros através do Javascript? Digo, as mensagens deles, uma vez que o que o PHP retorna é apenas "erro"?

 

Abraço!

Compartilhar este post


Link para o post
Compartilhar em outros sites

sim ou não.. depende.. você pode retornar a string de erro com php também.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Entendi, William. Mas daí vou ter que manipular os erros através do Javascript? Digo, as mensagens deles, uma vez que o que o PHP retorna é apenas "erro"?

Abraço!

 

Não, você pode simplesmente mandar um JSON com o PHP contendo sua mensagem e o status

echo json_encode ( array ( 'message' => '...' , 'status' => true ) ) ;

Depois você testa o status, lembra de mudar o dataType no $.ajax para json

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá!

 

Era mesmo isso que eu queria, Andrey. Valeu por me introduzir o djeisón. Eis o meu código final:

 

            $('#server-install').submit(function(e){
              e.preventDefault(); 
              json = $(this).serialize();
              $.ajax({
                 type: 'POST',
                 url: 'tgo-model/tgo-install.php',
                 dataType: 'json',
                 data: json,
                 beforeSend: function(){
                     $('#server-install input[type=submit]').attr({
                         value : 'Processando...',
                         disabled : 'disabled'
                     });
                 },
                 success: function(json){
                     if( json.status = true ){
                         alert( 'error1' );
                     } else {
                         alert( json.mensagem );
                     }
                 }
              });
           });

 

Abraço! :joia:

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.