Ir para conteúdo

Arquivado

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

Eduardo Villa

[Resolvido] Loop pegando dados do formulário...

Recommended Posts

Debugou com os alerts ?

function f_ajx(){    
    alert( 'Chamou a função!' );// se esse alert aparecer, o erro está em outro lugar
    var url = id('form_ajax').action;
    
    alert( url );//veja se está correto tb
    xmlRequest.open("POST", url, true);
    xmlRequest.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
        
    var dados = form2Qs('form_ajax')+form3Qs('form_ajax')+
                                '&funcao='.value;
    alert( dados ); //de onde viria o .value ?? isso está errado
    xmlRequest.send(dados);
    xmlRequest.onreadystatechange = function(){
        id("conteudo").innerHTML = xmlRequest.responseText;
        }
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fiz como você me falou e apareceu as três alertas, um após o outro...

 

1º) Chamou a função!

2º) processa_noticias.php

3º) mostra como no VAR_DUMP($_POST);

Compartilhar este post


Link para o post
Compartilhar em outros sites

3º) mostra como no VAR_DUMP($_POST);

 

não cara.. quem vai mostarr como no var_dump(), será:

xmlRequest.onreadystatechange = function(){
        alert( xmlRequest.responseText );
        id("conteudo").innerHTML = xmlRequest.responseText;
        }
o alert do dados ainda é a query string.

 

fez o mesmo teste com o echo $_POST['... ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

o que está me deixando intrigado é que

var_dump($_POST); - funcona e

echo "<br /><br />".$_POST['chamada']; - não...

Compartilhar este post


Link para o post
Compartilhar em outros sites

quando eu coloco para pegar só os INPUTS funciona.

Mas quando pega os dois (INPUT e TEXTAREAS) não funciona.

function form2Qs(form_ajax){
	var form = document.getElementById( form_ajax );
	var inputs = form.getElementsByTagName('input');
	
	var dados = '?';
	for( var i=0; i<inputs.length; i++ ){
		dados += inputs[i].name+'='+inputs[i].value+'&';
	}
	return dados;
}
function form3Qs(form_ajax){
	var form = document.getElementById( form_ajax );
	var textareas = form.getElementsByTagName('textarea');
	
	var dados = '?';
	for( var i=0; i<textareas.length; i++ ){
		dados += textareas[i].name+'='+textareas[i].value+'&';
	}
	return dados;
}

function f_ajx(){
	var url = id('form_ajax').action;
	xmlRequest.open("POST", url, true);
	xmlRequest.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
	
	var dados = form2Qs('form_ajax')+form3Qs('form_ajax'); //*** Aqui não funciona... ***//
	
	xmlRequest.send(dados);
	xmlRequest.onreadystatechange = function(){
		id("conteudo").innerHTML = xmlRequest.responseText;
	}
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Entendi o erro.. poderiamos ter resolvido isso antes, se você tivesse mostrado o alert do dados !

 

veja.. a query string não deve ter 2 ?

 

e você está fazendo isso..

troque essa linha, nas 2 funções:

var dados = '?';
por:

var dados = '';
e então:

var dados = '?'+form2Qs('form_ajax')+form3Qs('form_ajax'); //*** Aqui não funciona... ***//

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ok!

Deu certo, mas para chamar a "&funcao="?

 

Assim?

var dados = '?'+form2Qs('form_ajax')+form3Qs('form_ajax')+'&funcao='.value;

Compartilhar este post


Link para o post
Compartilhar em outros sites

e de onde vem esse valor ? de um input ?

.valueé o atributo value dos inputs... você precisa antes acessar o elemento, para depois invocar os atributos dele.

 

 

+'&funcao='document.getElementById('funcao').value
isso se você tiver um input com id="funcao"

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.