Dados Por Post
#1
Posted 06/08/2006, 15:50
1- como passar dados de formulario via POST usando ajax ?
A maioria dos exemplos usa o GET pega da url ... e qdo eu envio um form, como fazer?
#2
Posted 21/08/2006, 13:10
try{
xmlhttp = new XMLHttpRequest();
}catch(ee){
try{
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
}catch(e){
try{
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}catch(E){
xmlhttp = false;
}
}
}
function ajax_form2(div, pagina, post){
//Exibe o texto carregando no div conteúdo
var conteudo=document.getElementById(div)
conteudo.innerHTML='<div class="carregando">Enviando os dados. Aguarde...</div>'
//Guarda a página escolhida na variável atual
atual=pagina
//Abre a url
xmlhttp.open("POST", "funcoes/ajax.php?pagina="+pagina,true);
xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
//Executada quando o navegador obtiver o código
xmlhttp.onreadystatechange=function() {
if (xmlhttp.readyState==4){
//Lê o texto
var texto=xmlhttp.responseText
//Desfaz o urlencode
texto=texto.replace(/\+/g," ")
texto=unescape(texto)
//Exibe o texto no div conteúdo
var conteudo=document.getElementById(div)
conteudo.innerHTML=texto
//Obtém os links do menu
/*var menu=document.getElementById("menu")
var links=menu.getElementsByTagName("a")
//Limpa as classes do menu
for(var i=0;i<links.length;i++)
links[i].className=""
//Marca o selecionado
links[atual-1].className="selected"*/
}
}
xmlhttp.send(post);
}
// ----------------------------
/* essa função varre o form, e pega os valores de todos os campos do formulário.
use a função dentro da tag <form> do seu código
exemplo: <form id="nome_formulario" name="nome_formulario" action="" method="post" onsubmit="ajax_form('conteudo', 'nome_formulario', 'envia.php');">
*/
function ajax_form(id, id_form, url) {
var elementosFormulario = document.getElementById(id_form).elements;
var qtdElementos = elementosFormulario.length;
var queryString = "";
var elemento;
//Cria uma funcao interna para concatenar os elementos do form
this.ConcatenaElemento = function(nome,valor) {
if (queryString.length>0) {
queryString += "&";
}
queryString += encodeURIComponent(nome) + "=" + encodeURIComponent(valor);
};
//Loop para percorrer todos os elementos
for (var i=0; i<qtdElementos; i++) {
//Pega o elemento
elemento = elementosFormulario[i];
if (!elemento.disabled) {
//Trabalha com o elemento caso ele nao esteja desabilitado
switch(elemento.type) {
//Realiza a acao dependendo do tipo de elemento
case 'text': case 'password': case 'hidden': case 'textarea':
this.ConcatenaElemento(elemento.name,elemento.value);
break;
case 'select-one':
if (elemento.selectedIndex>=0) {
this.ConcatenaElemento(elemento.name,elemento.options[elemento.selectedIndex].value);
}
break;
case 'select-multiple':
for (var j=0; j<elemento.options.length; j++) {
if (elemento.options[j].selected) {
this.ConcatenaElemento(elemento.name,elemento.options[j].value);
}
}
break;
case 'checkbox': case 'radio':
if (elemento.checked) {
this.ConcatenaElemento(elemento.name,elemento.value);
}
break;
}
}
}
ajax_form2(id, url, queryString);
}
é assim que uso atualmente no meu site...
0 user(s) are reading this topic
0 membro(s), 0 visitante(s) e 0 membros anônimo(s)