Comunidad de diseño web y desarrollo en internet online

Ayuda: Submit de formularios en jQuery

Citar            
MensajeEscrito el 18 Sep 2007 03:05 pm
Hola.
Tengo la siguiente cuestión que todavia no pude resolver habiendo leido la doc de jQuery.
Basicamente necesito saber como se hace un submit de un formulario usando jQuery.
Tengo un formulario normal, con jquery le asigno el evento submit con los parametros que creo necesarios y que apunta a un archivo php que lo que hace es escribir en un archivo .xml
No entiendo bien como es el tema del parametro type y su relación con data, ya que vi ejemplos donde el type es POST, sin embargo en data le pasan los valores como si fuera un GET.
Les dejo el código
jQuery y form

Código :

<script language="javascript" type="text/javascript">
$(document).ready(function(){
   $("form:first").submit( function (){
      console.log("submit");
      console.log("nombre"+this.a_nombre.value+"&mail"+this.a_mail.value);
      
      $.ajax({
         type: "POST",
         url: "data.php",
         data: "a_nombre"+this.a_nombre.value+"&a_mail"+this.a_mail.value,
         success: function(msg){
            alert( "Data Saved: " + msg );
         },
         error: function(msg){
            alert("Error: " + msg);
         }
      });
      
   });
});
</script>

<form name="alta" id="alta">
   <input type="text" name="a_nombre" id="a_nombre" />&nbsp;<label for="a_nombre">nombre</label><br />
   <input type="text" name="a_mail" id="a_mail" />&nbsp;<label for="a_mail">mail</label><br />
   <input type="submit" name="a_submit" id="a_submit" value="Agregar" />
</form>



Archivo PHP a donde deberia apuntar

Código :

<?php
   $file = "cuentas.xml";
   $xml = simplexml_load_file($file);
   if(is_writable($file)){
      $open = fopen($file, "r+");
      $write = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n";
      $write .= "<cuentas>\n";
      foreach($xml as $item){
         $write .= "   <cuenta nombre=\"{$item["nombre"]}\" mail=\"{$item["mail"]}\" />\n";
      }
      $write .= "   <cuenta nombre=\"{$_POST["a_nombre"]}\" mail=\"{$_POST["a_mail"]}\" />\n";
      $write .= "</cuentas>";
      var_dump($write);
      if(fwrite($open, $write) === FALSE){
         echo "No se puede escribir";
         exit;
      }
      fclose($open);
   }
?>


Aclaro que en una de las pruebas que hice modificando los parametros, logre que apunte al archivo PHP, pero sin recibir los valores.
Todo funciona si no uso ajax.

Agradezco cualquier ayuda.
Saludos

Por PabloHdS

251 de clabLevel



 

firefox
Citar            
MensajeEscrito el 18 Sep 2007 06:06 pm
Bueno, hago otro post porque no me permite editar el anterior.
Aclaro dos cosas, el código que postee arriba tenia un error lógico de sintaxis, lo corregi y sigue sin funcionar. También aclaro que al hacer submit me devuelve el alert del parametro error.
Dejo el código nuevo de jquery

Código :

$(document).ready(function(){
   $("form:first").submit( function (){
      $.ajax({
         type: "POST",
         url: "data.php",
         data: "a_nombre="+this.a_nombre.value+"&a_mail="+this.a_mail.value,
         success: function(msg){
            alert("Data Saved: " + msg );
         },
         error: function(msg){
            alert("Error: " + msg);
         }
      });
   });
});

Por PabloHdS

251 de clabLevel



 

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.