Jump to content


Photo

Dados Por Post


  • Faça o login para participar
1 reply to this topic

#1 snkneo

snkneo

    Normal

  • Usuários
  • 118 posts
  • Sexo:Não informado
  • Localidade:Brazil
  • Interesses:Girls, Sexo, Games

Posted 06/08/2006, 15:50

Bom...

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 _Samuca_

_Samuca_

    samuelmachado.com

  • Usuários
  • 1062 posts
  • Sexo:Masculino
  • Localidade:São Bento do Sul - SC

Posted 21/08/2006, 13:10

1.

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...

;)
--
Samuel Machado
www.samuelmachado.com




0 user(s) are reading this topic

0 membro(s), 0 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq