Jump to content
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

nmoa

[Resolvido] Passar var por AJAX e retornar ao URL

Recommended Posts

nmoa

boas

estou aqui com uma questão que me está a dar volta à cabeça

necessito de pasar um var por ajax para um ficheiro php e depois nesse ficheiro php fazer com que volte com respostas para o ficheiro inicial

objectivo: validar uma palavra na base de dados e lançar uma resposta consoante o resultado

tenho assim o ficheiro inserir.php

   <label class="field select">
    <input  type="text" name="clientes" size="30" class="clientes gui-input" placeholder="Escreva o nome do cliente">
    </label>
  <div id="cliente"></div>
  <script>
  $(document).ready(function (){
	 $('input.clientes').typeahead({
		    name: 'clientes',
		    remote: 'cnt/clientes.php?query=%QUERY'
	    });

	    $(".clientes").focusout(function (){

		    var palavra = $(".clientes").val();
		    $.ajax({
			    url:"entrada.php?page=36&palavra="+palavra,
			    method:"POST"


		    });
		    return false;


	    })

  })
  </script>

e o ficheiro que ira receber a var assim

<div class="panel-body pn">
<?php
require_once ("../connect.php");connect();
$word = $_GET["palavra"];
$clientes = mysql_query("SELECT * FROM clientes where nome LIKE '%" . $word . "%'");
$conta = mysql_num_rows($clientes);
echo $word;
?>
<script>
   $(document).ready(function (){
   var conta = "<?php echo $conta ?>";
   console.log(conta);
	    if (conta == 0){
   $("#cliente").load("entrada.php?page=37");
	    };
	    })
</script>
</div>

ele esta a passar para esta página mas depois não retorna nada

obrigado

Share this post


Link to post
Share on other sites
HappyHippyHippo

vamos com calma ...

sem qualqwuer tipo de referência a código (especialmente o teu, porque está conceptualmente errado) explica claramente o que pretendes fazer


IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites
nmoa

vamos com calma ...

sem qualqwuer tipo de referência a código (especialmente o teu, porque está conceptualmente errado) explica claramente o que pretendes fazer

o que pretendo fazer é escrever uma palavra num input e ele fazer o autocomplete com dados que vai buscar à bd ( isso está a funcionar)

o 2º ponto é verficar se essa palavra não existe, se não existe iria aparecer uma informação a informar o utilizador que o nome que escreveu não existe e se pretende criar o registo

e é isto ...parece simples assim escrito

obrigado

Share this post


Link to post
Share on other sites
Knitter

Ignorando os erros do código, uma falta óbvia é o método de tratamento de resposta ao pedido AJAX. Parece que estás a usar jQuery, e se assim for tens de implementar o tratamento da resposta no método .done(), opcionalmente tens também o .fail() para tratar respostas.

Pessoalmente, acho que devolver JSON é mais prático, em vez de devolver apenas uma string livre.

Pegando no teu código:

$(".clientes").focusout(function (){
   var palavra = $(".clientes").val();
   $.ajax({
    url: "entrada.php?page=36&palavra="+palavra,
    method: "POST"
   }).done(function(resultado) {
    //resultado contém o que é devolvido pelo PHP,
    //pode ser JSON
   };
   return false;
})

Share this post


Link to post
Share on other sites
nmoa

Ignorando os erros do código, uma falta óbvia é o método de tratamento de resposta ao pedido AJAX. Parece que estás a usar jQuery, e se assim for tens de implementar o tratamento da resposta no método .done(), opcionalmente tens também o .fail() para tratar respostas.

Pessoalmente, acho que devolver JSON é mais prático, em vez de devolver apenas uma string livre.

Pegando no teu código:

$(".clientes").focusout(function (){
var palavra = $(".clientes").val();
$.ajax({
 url: "entrada.php?page=36&palavra="+palavra,
 method: "POST"
}).done(function(resultado) {
 //resultado contém o que é devolvido pelo PHP,
 //pode ser JSON
};
return false;
})

não esta a retornar nada ...

Share this post


Link to post
Share on other sites
Knitter

Tens a certeza que não está a devolver nada? Confirmaste com ferramentas de debug, vendo o conteúdo do pedido e da resposta e os códigos de erro/sucesso?

"não está a retornar nada ..." não me diz muito :)

Share this post


Link to post
Share on other sites
nmoa

Tens a certeza que não está a devolver nada? Confirmaste com ferramentas de debug, vendo o conteúdo do pedido e da resposta e os códigos de erro/sucesso?

"não está a retornar nada ..." não me diz muito :)

pois nao diz mto :/

no php que lança a resposta esta assim

<?php
require_once ("../connect.php");connect();
$word = $_GET["palavra"];
$clientes = mysql_query("SELECT * FROM clientes where nome LIKE '%" . $word . "%'");
$conta = mysql_num_rows($clientes);
echo $conta;
?>

deveria aparecer o valor conta ...

Share this post


Link to post
Share on other sites
HappyHippyHippo

deveria aparecer o valor conta ...

deveria ?

como ?

porquê ?

qual a instrução de código que indica essa o valor deveria aparecer ?

e onde ?


IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites
nmoa

deveria ?

como ?

porquê ?

qual a instrução de código que indica essa o valor deveria aparecer ?

e onde ?

o valor que me deveria passar era a quantidade existente da procura

ou seja se escrever joao deveria retornar 0 , pois não existe na base de dados nenhum joão

obrigado

Share this post


Link to post
Share on other sites
nmoa

ja consegui resolver

obrigado

faltava fazer uma coisa com o codigo do #knitter

mais uma vez obrigado

Share this post


Link to post
Share on other sites
HappyHippyHippo

o valor que me deveria passar era a quantidade existente da procura

ou seja se escrever joao deveria retornar 0 , pois não existe na base de dados nenhum joão

fiz 6 perguntas e não respondeste a nenhuma ...


IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites
nmoa

fiz 6 perguntas e não respondeste a nenhuma ...

pois

mas já resolvi como disse no post anterior

obrigado

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

×

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.