FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
Error envío formulario mediante AJAX
Hola compañeros, estoy realizando pruebas de programación web utilizando el método AJAX. Lo que estoy intentado es dar de alta un cliente para lo cual tengo lo siguiente :
El formulario de entrada de datos : Código:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Entrada datos con Marcos Ocultos</title> <script language='JavaScript' src='lib/clientes.js'></script> </head> <body> <form action="GardarCliente.php" method="post" accept-charset="utf-8" onsubmit="EnviarPeticion();return false"> <p>Introduza os datos do novo cliente</p> <p>Nome do cliente : <input type="text" name="txtNome" value=""/><br/> Dirección : <input type="text" name="txtDireccion" value=""/><br/> Cidade : <input type="text" name="txtCidade" value=""/><br/> Provincia : <input type="text" name="txtProvincia" value=""/><br/> Código Postal : <input type="text" name="txtCP" value=""/><br/> Teléfono : <input type="text" name="txtTfn" value=""/><br/> E-mail : <input type="text" name="txtCorreo" value=""/><br/></p> <p><input type="submit" value="Gardar Información Cliente"/></p> </form> <div id="divEstado"></div> </body> </html> Código:
//Muestra el argumento pasado en la capa divEstado del formulario de entrada de datos function GardarResultado(sMensaxe){ var divEstado = document.getElementById("divEstado"); divEstado.innerHTML = "Petición completada : " + sMensaxe; } //Crea el objeto XMLHttp function crearXMLHttp(){ if (typeof XMLHttpRequest != undefined) { return new XMLHttpRequest(); } else if (window.ActiveXObject) { var aVersiones = ["MSXML2.XMLHttp.5.0", "MSXML2.XMLHttp.4.0", "MSXML2.XMLHttp.3.0", "MSXML2.XMLHttp.2.0", "MSXML2.XMLHttp"]; for (var i = 0; i < aVersiones.length; i++) { try { var oXmlHttp = new ActiveXObject(aVersiones[i]); return oXmlHttp; } catch (oErro) { //Non facer nada } } } throw new Error("O obxeto XMLHttp non se puido crear"); } //Obtiene el cuerpo de la petición que se pasará mediante el metodo Post function ObterCorpoPeticion(oFormulario){ var aParametros = new Array(); for (var i = 0; oFormulario.elements.length; i++){ var sParametros = encodeURIComponent(oFormulario.elements[i].name); sParametros += "="; sParametros += encodeURIComponent(oFormulario.elements[i].value); aParametros.push(sParametros); } aParametros.join("&"); } //Envía la petición al servidor function EnviarPeticion(){ var oFormulario = document.forms[0]; var sCorpo = ObterCorpoPeticion(oFormulario); var XmlHttp = crearXMLHttp(); XmlHttp.open("post", "GardarCliente.php", true); XmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); XmlHttp.onreadystatechange = function(){ if (XmlHttp.readyState == 4){ if (XmlHttp.status == 200){ GardarResultado(XmlHttp.responseText); } else { GardarResultado("Ocorreu un erro : " + XmlHttp.statusText); } } } XmlHttp.send(sCorpo); } Código PHP:
La función EnviarPeticion se ejecuta, pero en la línea que se llama a la función ObterCorpoPeticion se abre la página GardarCliente.php justo al finalizar el bucle for de la función ObterCorpoPeticion, sin llegar a ejecutarse la línea aParametros.join("&");. So comento esta línea la página se abre justo despues de la línea XmlHttp.send(sCorpo); en la función EnviarPeticion, es decir, nunca llega a ejecutarse el evento onreadystatechange. Espero no haber sido muy pesado con la explicación. Un saúdo y gracias por vuestra paciencia y dedicación.
__________________
Si no lees esto no vivirás tranquilo Non lle poñades chatas â obra namentras non se remata. O que pense que vai mal que traballe n’ela; hai sitio para todos. (Castelao) Última edición por Ivanzinho fecha: 27-01-2009 a las 13:10:39. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Error envio email con componentes Indy IdSMTP y IdMessage | Bertifox2008 | Internet | 7 | 09-10-2008 23:02:59 |
Error en el envío de correo. | Cecilio | Internet | 0 | 02-07-2008 17:28:20 |
defecto en el envio mediante POST???? | gabrielflowers | PHP | 5 | 21-05-2008 20:03:54 |
Capturar error envio de correos con el evento OnFailedRecipient | arante73 | Internet | 0 | 17-07-2007 10:05:54 |
Descargar archivos mediante un formulario | pampitasnowman | PHP | 17 | 15-05-2007 16:39:04 |
|