Ir para conteúdo

POWERED BY:

Arquivado

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

DiegoOliveira

[Resolvido] Resposta do ajax em várias linhas

Recommended Posts

Pessoal,

 

Estou enviando uma informação pro ajax e a resposta eu quero exibir em várias <td's> da minha página.

Coloquei a minha div com id="coordenada" mas na hora de exibir ele exibe em apenas uma <td> de uma linha.

Gostaria de exibir em todas as <td's> com id coordenada.

 

Não sei se fui bem claro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

A sua dúvida é a mesma daqui:

http://forum.imasters.com.br/index.php?/topic/365033-limitacao-do-innerhtml/page__view__findpost__p__1395580

 

você precisa dividir a informação, e tratar com Javascript para onde quer que cada coisa vá.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Segue o código...

 

AJAX.JS

var req;
var id_var;

function carregadocumento(id,url){
id_var = id;
 req = null;

if (window.XMLHttprequest) {
 req = new XMLHttprequest();
 req.onreadystatechange = processreqChange;
 req.open("GET", url, true); 
 req.send(null);

} else if (window.ActiveXObject) {
try {
req = new ActiveXObject("Msxml2.XMLHTTP.4.0");
} catch(e) {
try {
req = new ActiveXObject("Msxml2.XMLHTTP.3.0");
} catch(e) {
try {
req = new ActiveXObject("Msxml2.XMLHTTP");
} catch(e) {
try {
req = new ActiveXObject("Microsoft.XMLHTTP");
} catch(e) {
req = false;
}
}
}
}
if (req) {
 req.onreadystatechange = processreqChange;
 req.open("GET", url, true);
 req.send();
}
}
}

function processreqChange(){

if (req.readyState == 4) {
if (req.status == 200) {

if(id_var == ""){
id_var = id;
}

document.getElementById(id_var).innerHTML = req.responseText;


} else
{alert("Houve um problema ao obter os dados:\n" + req.statusText);}}}

function atualiza(valor1,valor2,valor3,valor4,valor5,valor6,valor7,valor8,valor9,id){
carregadocumento(id,"dados.php?VALOR1="+valor1+"&VALOR2="+valor2+"&VALOR3="+valor3+"&VALOR3="+valor4+"&VALOR4="+valor5+"&VALOR5="+valor6+"&VALOR7="+valor7+"&VALOR8="+valor8+"&VALOR9="+valor9);
}

 

TABELA HTML QUE RECEBE O RETORNO DO AJAX

<div align="center" id="coordenada"></div>

FUNÇÃO QUE ENVIA OS DADOS PRO AJAX

onBlur="atualiza(VALOR1.value,VALOR2.value,VALOR3.value,VALOR4.value,VALOR5.value,VALOR6.value,VALOR7.value,VALOR8.value,VALOR9.value,'coordenada')

 

 

ESSA DIV COORDENADA ESTÁ DENTRO DE UM WHILE, LOGO TODAS AS CELULAS DAQUELA COLUNA SE CHAMAM COORDENADA E EU GOSTARIA QUE O RESULTADO DO AJAX APARECESSE EM TODAS AS CELULAS COORDENADA DESSA COLUNA, MAS ELE ME RETORNA APENAS NA PRIMEIRA CELULA DA COLUNA.

COMO TRATO ISSO?

QUALQUER DÚVIDA....

Compartilhar este post


Link para o post
Compartilhar em outros sites

Existem alguns erros ai.

ESSA DIV COORDENADA ESTÁ DENTRO DE UM WHILE

ahn ?

Ela não está na 'view' da coisa ? não é ela que vai receber os dados ?

então não tem como você colocar ela num while.. e você não deve repetir IDs numa mesma página. ID é um identificador único.

 

TODAS AS CELULAS COORDENADA DESSA COLUNA

você nos mostrou uma DIV... cadê a célula?

Como está o arquivo: dados.php ?

Oque ele te retorna, e como ? viu o link que postei ?

 

Dá uma estudada em como fiz o retorno no exemplo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Existem alguns erros ai.

ESSA DIV COORDENADA ESTÁ DENTRO DE UM WHILE

ahn ?

Ela não está na 'view' da coisa ? não é ela que vai receber os dados ?

então não tem como você colocar ela num while.. e você não deve repetir IDs numa mesma página. ID é um identificador único.

 

TODAS AS CELULAS COORDENADA DESSA COLUNA

você nos mostrou uma DIV... cadê a célula?

Como está o arquivo: dados.php ?

Oque ele te retorna, e como ? viu o link que postei ?

 

Dá uma estudada em como fiz o retorno no exemplo.

 

 

SÓ NÃO COLEI TODO O CÓDIGO PQ É GRANDE E PODERIA CONFUNDIR, A MINHA DIV ESTÁ EM VOLTA DE UMA <TD>, O MEU DADOS.PHP TEM UMA CONSULTA NO MYSQL QUE RETORNA O DADO CERTO QUE EU QUERO, SÓ NÃO RETORNA EM TODAS AS CELULAS E SIM NA PRIMEIRA DO WHILE.

 

VALEW PELA FORÇA.

SE PUDER ME DAR UMA LUZ AGRADEÇO.

Compartilhar este post


Link para o post
Compartilhar em outros sites

var table = document.getElementById('codigo'); 
                        var td = table.getElementsByTagName('td'); 
                         
                        var cada = requestObject.responseText.split('|'); 
                        for( var i=0; i < td.length; i++ ){ 
                         
                                td[i].childNodes[0].nodeValue = cada[i]; 
                        } 
                }

TEM COMO ME DAR UMA BREVE EXPLICAÇÃO SOBRE ESSA PARTE DO CÓDIGO?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá DiegoOliveira,

 

Iria editar seu primeiro post com uso de CAIXA ALTA mas como vi que está usando em praticamente todos os posts resolvi alertar no próprio tópico

 

Se ainda não leu nossas regras não deixe de conferir

 

http://forum.imasters.com.br/index.php?app=core&module=help

 

Abraços

 

Mário Monteiro

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tentei assim mas ainda mostra em apenas uma célula, só me digam se estou no caminho certo

 

segue o código:

if (req.readyState == 4) {
if (req.status == 200) {

if(id_var == ""){
id_var = id;
}
var dado = req.responseText;
    dado = unescape(dado);
var campos = document.getElementsByTagName("div"); 
 
   for (i=0; i < campos.length; i++) 
   { 

        if(campos[i].id == id_var){

           var achei = campos[i].id;
           document.getElementById(achei).innerHTML = dado;
        }      
    }

Compartilhar este post


Link para o post
Compartilhar em outros sites

Funcionou assim:

 

var campos = document.getElementsByTagName("div"); 
for (i=0; i < campos.length; i++)
{ 

	var quebra = campos[i].id.split('-');//o id do meu div é um nome concatenado com "-" e uma variavel que se incrementa a cada linha do php.

	quebra2 = quebra[0];// aki pego somente o nome
	
	if(quebra2 == id_var){//comparo o nome da div com o nome da celula q enviei
		var achei = campos[i].id;
		document.getElementById(achei).innerHTML = dado;
	}
}

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.