Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
iaew galera beleza!? http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif
eu tava dando umas olhadas em alguns codigos aew
pra enviar um form via pos
aew ficou mais ou menos assim
o js eh esse
var navegador = navigator.userAgent.toLowerCase(); //Cria e atribui à variável global 'navegador' (em caracteres minúsculos) o nome e a versão do navegador
var xmlhttp; //Cria uma variável global chamada 'xmlhttp'
//Função que inicia o objeto XMLHttpRequest
function objetoXML() {
if (navegador.indexOf('msie') != -1) { //Internet Explorer
var controle = (navegador.indexOf('msie 5') != -1) ? 'Microsoft.XMLHTTP' : 'Msxml2.XMLHTTP'; //Operador ternário que adiciona o objeto padrão do seu navegador (caso for o IE) à variável 'controle'
try {
xmlhttp = new ActiveXObject(controle); //Inicia o objeto no IE
} catch (e) { }
} else { //Firefox, Safari, Mozilla
xmlhttp = new XMLHttpRequest(); //Inicia o objeto no Firefox, Safari, Mozilla
}
}
//Função que envia o formulário
function enviarForm(url, campos, destino) {
var elemento = document.getElementById(destino); //Atribui à variável 'elemento' o elemento que irá receber a página postada
objetoXML(); //Executa a função objetoXML()
if (!xmlhttp) { //Se o objeto de 'xmlhttp' não estiver true
elemento.innerHTML = 'Impossível iniciar o objeto XMLHttpRequest.'; //Insere no 'elemento' o texto atribuído
return;
} else { //Senão
elemento.innerHTML = 'Carregando...'; //Insere no 'elemento' o texto atribuído
}
xmlhttp.onreadystatechange = function () {
if (xmlhttp.readyState == 4 || xmlhttp.readyState == 0) { //Se a requisição estiver completada
if (xmlhttp.status == 200) { //Se o status da requisição estiver OK
elemento.innerHTML = xmlhttp.responseText; //Insere no 'elemento' a página postada
} else { //Senão
elemento.innerHMTL = 'Página não encontrada!'; //Insere no 'elemento' o texto atribuído
}
}
}
xmlhttp.open('POST', url+'?'+campos, true); //Abre a página que receberá os campos do formulário
xmlhttp.send(campos); //Envia o formulário com dados da variável 'campos' (passado por parâmetro)
}
essa a pag index
<form action="includes/envia.comentario.php" method="post" onSubmit="setarCampos(); enviarForm('includes/envia.comentario.php', campos, 'divResultado'); return false;" >
<input type="hidden" name="id_materia" id="id_materia" value="<?php echo $lista[0]["id_materia"]; ?>" />
<input type="hidden" name="id_foto" id="id_foto" value="<?php echo $lista[0]["id_foto"] != "" ? $lista[0]["id_foto"] : '0'; ?>" />
<table width="100%" border="0" cellspacing="1" cellpadding="1">
<tr>
<td colspan="3">
<table background="imgs/bgBarraComentario.jpg" width="100%" cellpadding="0" cellspacing="0" border="0" height="15px" >
<tr>
<td><b> .: Comentários</b> <img src="imgs/setaBarraComentario.jpg" style="margin-left:5px; margin-top: -1px; margin-bottom: -3px; " />
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td width="9%" align="right"><b>Nome:</b></td>
<td colspan="2"><input name="nome" id="nome" type="text" class="inputNomeEmail" /></td>
</tr>
<tr>
<td align="right"><b>E-mail:</b></td>
<td colspan="2"><input name="email" id="email" type="text" class="inputNomeEmail" /></td>
</tr>
</table>
<table cellpadding="0" cellspacing="0" border="0" width="100%" >
<tr>
<td colspan="2"><b>Comentário:</b></td>
<td width="28%" rowspan="2">
<table width="100%" border="0" cellspacing="1" cellpadding="1">
<tr>
<td width="4%"><img src="imgs</td>
<td width="12%"><img src="imgs/emoticons/(8).gif" /></td>
<td width="11%" rowspan="2"><img src="imgs</td>
<td width="73%" rowspan="2"><img src="imgs</td>
</tr>
<tr>
<td><img src="imgs</td>
<td><img src="imgs</td>
</tr>
<tr>
<td colspan="2"><img src="imgs</td>
<td><img src="imgs</td>
<td><img src="imgs</td>
</tr>
</table>
</td>
</tr>
<tr>
<td colspan="2"><textarea name="comentario" id="comentario" class="TAComentario"></textarea>
<br />
<input name="image" type="image" class="inputOkLogin" src="imgs/butOk.gif" />
</td>
</tr>
</table>
</form>
<!-- Cria a variável com os campos para envio via parâmetro //-->
<script>
function setarCampos() {
campos = "id_materia="+encodeURI(document.getElementById('id_materia').value).toUpperCase()+"&id_foto="+encodeURI(document.getElementById('id_foto').value).toUpperCase()+"&nome="+encodeURI(document.getElementById('nome').value).toUpperCase()+"&email="+encodeURI(document.getElementById('email').value).toUpperCase()+"&comentario="+encodeURI(document.getElementById('comentario').value);
}
function pegaVariaveis() {
var variaveis = new Array('id_materia','id_foto','nome','email','comentario');
var dados = new String;
var comprimento = variaveis.length;
for(i = 0; i < comprimento; i) {
campo = variaveisi;
dados = campo "=" encodeURI(eval('document.form.' campo '.value'));dados = "&";
}
}
}
</script>extract($_POST); //Extraí os dados do formulário
$id_materia = ($id_materia != "") ? $id_materia : "desconhecido";
$id_foto = ($id_foto != "") ? $id_foto : "desconhecido";
$nome = ($nome != "") ? $nome : "desconhecido"; //Verifica se algum nome foi digitado
$email = ($email != "") ? $email : "desconhecido"; //Verifica se algum email foi digitado
$comentario = ($comentario != "") ? $comentario : "desconhecido";
echo $id_materia.', '.$id_foto.', '.$nome.', '.$email.', '.$comentario; //Retorna com a resposta
bem a dogeito q estar o q acontece eh ele chamar a pag envia.comentario em uma nova e nao na mesmma,
soh q se eu tiro a funçao pegaVariaveis() da pagina do form eh atualizado apenas a div q eu peço mais sem os
dados nela
:blink:
alguem sabe dizer mais ou menos o q eu poderia tah fazendo pra melhorar issu?
grato
Putz, desculpem postar depois de tanto tempo mas é que estava com inconsistência no dados do fórum, eu estava tentando logar e não conseguia, só depois de muito tempo que pensei em entrar em contato pra resolver isso. http://forum.imasters.com.br/public/style_emoticons/default/upset.gif
Bom, não consegui fazer seu código executar, sério mesmo!
Não foi!
Eu também tenho problemas em fazer um formulario em ajax executar no método POST, geralmente XMLHTTPRequest executa em GET e por isso não encontrei muito na web que pudesse me ajudar (Já corrigindo o problema em executar XMLHTTPRequest no Internet Explorer).
Att.
aewW galera resolvi assim...
script.js
// JavaScript Document
//INICIALIZA AS VARIAVEIS PARA CONTROLE DA FILA
//fila[X][0] - Div onde sera carregada a pagina
//fila[X][1] - Pagina que sera chamada
//fila[X][2] - Metodo de envio
//fila[X][3] - Campos do form concatenados no padrao para serem enviados. Null caso seja um link
//INICIALIZA O OBJETO QUE IRA FAZER AS SOLICITACOES
try{
}catch(e2){
try{
//GUARDA NA FILA O ID DO OBJETO E O FORM QUE SERAO CARREGADOS PELO LINK CLICADO
//EXECUTA A PROXIMA SOLICITACAO DA FILA
//FUNCAO EXECUTADA QUANDO ALTERAR O STATUS DA SOLICITACAO (readyState)
//FUNCAO EXECUTADA QUANDO INICIAR A SOLICITACAO (readyState=1)
//FUNCAO EXECUTADA QUANDO A SOLICITACAO ESTIVER COMPLETA (readyState=4)
//FUNCAO PARA RETORNAR A MENSAGEM DE ERRO QUANDO O SERVIDOR RETORNAR UMA PAGINA DE ERRO
//FUNCAO PARA RETORNAR A MENSAGEM DE QUE ESTA CARREGANDO A PAGINA
// url_encode version 1.0
//FUNCAO PARA PEGAR OS CODIGOS SCRIPT
//FUNCAO PARA PEGAR OS ELEMENTOS DO FORM
esse script pode valer pra alguem q esteja precisando
^_^
vlwW http://forum.imasters.com.br/public/style_emoticons/default/graduated.gif