Ir para conteúdo

POWERED BY:

Arquivado

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

meneghetti

[Resolvido] dois select + ajax

Recommended Posts

Ola a todos:

 

sou novo por aqui e esta é minha primeira postagem, ja pesquisei em todos os topicos deste e de outros foruns mas não consegui resolver minha duvida.

 

como faço para enviar o valor de dois select ao mesmo tempo, usando ajax?

tentando explicar melhor:

eu faço a escolha em um primeiro select e ao fazer a escolha do segundo select os dois selects sejam enviado para minha pagina php que faz a pesquisa em meu bd, de acordo com os dois select recebidos, e me retorna apenas um valor.

 

já estou conseguindo enviar um select mas sem o segundo a pesquisa não pode ser feita.

Compartilhar este post


Link para o post
Compartilhar em outros sites

coloque como esta o HTML do form que eu te mostro como fazer.

 

bem:

 

Estudando mais esta manhã toda, eu descobri que tenho que criar um id pro meu select, então criei id pros dois select e assistindo uma video aula eu consegui adptar o codigo pra minha necessidade. Descobri que o formulario é enviado da seguinte forma: xmlhttp.open("POST","ajax_valor_procedimento.php?pagamento="+document.getElementById("pagamento").value+"&acao="+document.getElementById("acao").value+"",true);

 

ok, até aqui esta funcionando estou enviando dois valores dos meus select e a resposta esta sendo impressa no devido lugar, agora estou tentando trabalhar com a resposta em meu php, a pagina ajax_valor_procedimento.php faz uma pesquisa no meu bd e retorna um echo $reg;

 

ainda não consegui usar esta variavel $reg da pagina de busca

Compartilhar este post


Link para o post
Compartilhar em outros sites

você tem que criar a função de retorno (callback)

 

e como faço isto?

 

minha pagina de pesquisa esta assim:

$sql ="select*from preco_procedimento WHERE entidade='$pagamento' && procedimento='$acao'" ;

$query = mysql_query($sql);// or die ("Erro". mysql_query());

 

while($reg=mysql_fetch_array($query)){

 

echo $reg["valor"];

}

 

pensei que eu pudesse pegar a variavel $reg e simplesmente atribui la como value de algum <input type=text name=valor value='$reg'>

 

isto não funcionou.

 

vou procurar a função de retorno.

Compartilhar este post


Link para o post
Compartilhar em outros sites

do modo que você efetuou o post eu não estou familiarizado, eu faço através do Jquery da seguinte maneira:

 

$.post(
'paginaDophp.PHP',
{variavel: 'valor', variavel2: 'valor2'},
function(retorno){
 alert(retorno);
}
);

 

paginaDophp.PHP

echo "Minha primeira variável é: {$_POST['variavel']} e minha segunda variável é: {$_POST['variavel2']}";

 

eu creio que você não pode retornar algo dento de um loop, você tem que usar json_encode ou um serialize

Compartilhar este post


Link para o post
Compartilhar em outros sites

do modo que você efetuou o post eu não estou familiarizado, eu faço através do Jquery da seguinte maneira:

 

$.post(
'paginaDophp.PHP',
{variavel: 'valor', variavel2: 'valor2'},
function(retorno){
 alert(retorno);
}
);

 

paginaDophp.PHP

echo "Minha primeira variável é: {$_POST['variavel']} e minha segunda variável é: {$_POST['variavel2']}";

 

eu creio que você não pode retornar algo dento de um loop, você tem que usar json_encode ou um serialize

 

este é o codigo completo da pagina de pesquisa:

header('Content-Type: text/html; charset=iso-8859-1');

mysql_query("SET NAMES 'iso-8859-1'");

mysql_query('SET character_set_connection=iso-8859-1');

mysql_query('SET character_set_client=iso-8859-1');

mysql_query('SET character_set_results=iso-8859-1');

 

$pagamento =strtolower ($_GET["pagamento"]);

$acao =strtolower ($_GET["acao"]);

 

$sql ="select*from sihusacl_clinica.preco_procedimento WHERE entidade='$pagamento' && procedimento='$acao'" ;

$query = mysql_query($sql);// or die ("Erro". mysql_query());

 

while($reg=mysql_fetch_array($query)){

 

echo $reg["valor"];

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

mostra o javascript, o erro que esta no php creio que é aqui

while($reg=mysql_fetch_array($query)){

echo $reg["valor"];
} 

 

você não pode retornar dentro de um loop pro javascript.

Compartilhar este post


Link para o post
Compartilhar em outros sites

mostra o javascript, o erro que esta no php creio que é aqui

while($reg=mysql_fetch_array($query)){

echo $reg["valor"];
} 

 

você não pode retornar dentro de um loop pro javascript.

 

na verdade esta funcionando ele mostra:

Valor R$ <span id="txtHint"> </span> neste ponto aparece o retorno do bd corretamente, mas eu não consigo por este retorno dentro de um <input type=text name=valor size=6 >

 

este é meu script java

<script type="text/javascript">

function showHint(str){

var xmlhttp;

if (str.length==0){

document.getElementById("txtHint").innerHTML="";

return;

}

if (window.XMLHttpRequest){// code for IE7+, Firefox, Chrome, Opera, Safari

xmlhttp=new XMLHttpRequest();

}

else {// code for IE6, IE5

xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");

}

xmlhttp.onreadystatechange=function(){

if (xmlhttp.readyState==4 && xmlhttp.status==200){

document.getElementById("txtHint").innerHTML=xmlhttp.responseText;

}

}

xmlhttp.open("POST","ajax_valor_procedimento.php?pagamento="+document.getElementById("pagamento").value+"&acao="+document.getElementById("acao").value+"",true);

xmlhttp.send();

 

se eu tiro a resposta de dentro do loop ele para de responder

Compartilhar este post


Link para o post
Compartilhar em outros sites

obrigado amigo, tuas sugestões me ajudaram a pensar e consegui resolver o meu problema todo, esta tudo funcionando perfeitamente.

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.