Ir para conteúdo

POWERED BY:

Arquivado

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

Adilson_Web_2007

Como recuperar mais de um valor com AJAX

Recommended Posts

Olá pessoal estou fazendo um sistema e o servidor está retornando mais de um arqumento, na verdade 3. Eu gostaria de pegar cada um desses argumento, pois eu irei passá-lo para outra função. Como fazer isso.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como esta é a resposta do servidor?

Talvez você possa usar expressões regulares (caso a resposta seja em text/plain) ou usar DOM (caso seja tex/xml).

Compartilhar este post


Link para o post
Compartilhar em outros sites

Esta assim. dei um select no banco e tem 3 informações, area, nome, email.

não sei como recuperar eu pensei em colocar em um array, mas não sei recuperar um array em AJAX estou iniciando.

 

Esta assim. dei um select no banco e tem 3 informações, area, nome, email.

não sei como recuperar eu pensei em colocar em um array, mas não sei recuperar um array em AJAX estou iniciando.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Duvida bem pertinente, estou me iniciando no ajax e também me deparei com esta dúvida, já comprei muitos livros, ja baixei centenas de apostilas, de exemplos, mas em nenhum destes minha duvida foi sanada.

Retornar um valor para o ajax foi moleza, mas mais de um, au simplesmente ainda não fui capaz. se alguma boa alma puder nos ajudar...

Compartilhar este post


Link para o post
Compartilhar em outros sites

você precisa retornar um XML

 

no seu php antes de código add essa linha

header("Content-Type: application/xml");

e você ira escrever os dados assim

$xml = '<dados>';
	$xml.= '<nome>'.$nome.'</nome>';
	$xml.= '<email>'.$email.'</email>';
	$xml.= '<area>'.$area.'</area>';
$xml.= '</dados>';

echo $xml;

sendo essa sua resposta você pode pegar esses dados assim no JS

 

if(ajax.readyState == 4){
		if(ajax.status == 200){
			var  xml = ajax.responseXML;
			if(xml != null){
				if(xml.hasChildNodes()){
					var nos = xml.getElementsByTagName('dados');
										for(count = 0; count < nos.length; count++){
						if(window.ActiveXObject){
							var nome = nos[count].childNodes[0].firstChild.nodeValue;
							var email = nos[count].childNodes[1].firstChild.nodeValue;
							var area= nos[count].childNodes[2].firstChild.nodeValue;
						}else{
							var nome = nos[count].childNodes[1].firstChild.nodeValue;
							var email = nos[count].childNodes[3].firstChild.nodeValue;
							var area= nos[count].childNodes[5].firstChild.nodeValue;		
						}
...

pronto.. agora você pode receber até 1000000000000000000 de valores pelo ajax =D

você tem q aprender só a tratar o XML com o js...

 

=D

Compartilhar este post


Link para o post
Compartilhar em outros sites

mas eu estive procurando mais sobre o assunto, posso retornar para o ajax mesmo sem ser em XML, respnseText, ai devo usar como em GET, "variavel0=valor&variavel1=valor&variavel2=valor" que poderei recuperar esta resposta em texto simples no ajax mesmo como post

Compartilhar este post


Link para o post
Compartilhar em outros sites

mas eu estive procurando mais sobre o assunto, posso retornar para o ajax mesmo sem ser em XML, respnseText, ai devo usar como em GET, "variavel0=valor&variavel1=valor&variavel2=valor" que poderei recuperar esta resposta em texto simples no ajax mesmo como post

???

 

mesmo pelo post você pode passar mais de 1 valor para a requisicao

 

ex.:

var dados = "nome=valorNome";
dados+= "&idade=valorIdade";
dados+= "&peso=valorPeso";

ajax.send(dados);

no php você pega como
$_POST['nome']
$_POST['idade']
$_POST['peso']
---

pensei q era pra retornar do ajax.

dai sim. você retorna um XML

ou você pode criar algum metodo ex."

retorno do ajax: nome::idade::peso

 

dai no JS com a funcao "split" você corta onde tiver :: e usa como um array.

embora eu ache q com XML fica mto melhor.. m as vai de cada 1..

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.