Foros del Web » Programando para Internet » Javascript » Frameworks JS »

Problema procesar formulario ajax

Estas en el tema de Problema procesar formulario ajax en el foro de Frameworks JS en Foros del Web. Buenas, espero que sepan solucionarme mi problema... Es mi comienzo en el mundo de AJAX y tengo que hacer un formulario que se procese para ...
  #1 (permalink)  
Antiguo 30/10/2009, 05:11
 
Fecha de Ingreso: marzo-2007
Mensajes: 89
Antigüedad: 17 años, 1 mes
Puntos: 0
Problema procesar formulario ajax

Buenas, espero que sepan solucionarme mi problema...

Es mi comienzo en el mundo de AJAX y tengo que hacer un formulario que se procese para ir creando productos, pero he visto que siempre cuando ajax procesa un formulario devuelve un mesaje, de 'ok' o 'error', pero yo quiero que salga ese mensaje y de nuevo el formulario para volver a insertar ese producto...

Como podria hacer esto? os pego el código inicial que tengo:

Código PHP:
<?
//incluímos la clase ajax
require ('xajax/xajax.inc.php');

//instanciamos el objeto de la clase xajax
$xajax = new xajax(); 

$connectid mysql_connect("localhost""root""190183");
mysql_select_db("pruebas",$connectid);

function 
procesar_formulario($form_entrada){
   
$ssql "insert into user (mail) values ('" $form_entrada["mail"] . "')";
   
   if (
mysql_query($ssql)){
      
$salida "Insertado correctamente";
   }else{
      
$salida "No se ha insertado. Este es el error: " mysql_error();
   }
   
   
//instanciamos el objeto para generar la respuesta con ajax
   
$respuesta = new xajaxResponse();
   
//escribimos en la capa con id="respuesta" el texto que aparece en $salida
   
$respuesta->addAssign("mensaje","innerHTML",$salida);  

   
//tenemos que devolver la instanciación del objeto xajaxResponse
   
return $respuesta;
}
//registramos la función creada anteriormente al objeto xajax
$xajax->registerFunction("procesar_formulario");

//El objeto xajax tiene que procesar cualquier petición
$xajax->processRequests();
?>
<html>
<head>
   <title>Enviar y procesar un formulario con Ajax y PHP</title>
   <?
   
//En el <head> indicamos al objeto xajax se encargue de generar el javascript necesario
   
$xajax->printJavascript("xajax/");
   
?>
</head>

<body>
<h1>Recibir y procesar formulario con Ajax y PHP</h1>
<div id="mensaje">
<form id="formulario">
Nombre de país: <input type="text" name="mail">
<br>
<input type="button" value="Enviar" onclick="xajax_procesar_formulario(xajax.getFormValues('formulario'))">
</form>
</div>

</body>
</html>
Muchas gracias por vuestra ayuda.
  #2 (permalink)  
Antiguo 30/10/2009, 09:17
 
Fecha de Ingreso: enero-2005
Mensajes: 122
Antigüedad: 19 años, 3 meses
Puntos: 2
Respuesta: Problema procesar formulario ajax

Hola Raul,

veo que la conexion a la Base de Datos esta por fuera de la funcion xajax, debes de ingresarla a la funcion o globalizarla, por ejemplo:

Código PHP:
$connectid mysql_connect("localhost""root""190183");
$conn mysql_select_db("pruebas",$connectid);

function 
procesar_formulario($form_entrada){

   global 
$conn;

   
// o colocar aqui toda la conexion.

   
$ssql "insert into user (mail) values ('" $form_entrada["mail"] . "')";
   
   if (
mysql_query($ssql)){
      
$salida "Insertado correctamente";
   }else{
      
$salida "No se ha insertado. Este es el error: " mysql_error();
   }
   
   
//instanciamos el objeto para generar la respuesta con ajax
   
$respuesta = new xajaxResponse();
   
//escribimos en la capa con id="respuesta" el texto que aparece en $salida
   
$respuesta->addAssign("mensaje","innerHTML",$salida);  

   
//tenemos que devolver la instanciación del objeto xajaxResponse
   
return $respuesta;
}
//registramos la función creada anteriormente al objeto xajax
$xajax->registerFunction("procesar_formulario");

//El objeto xajax tiene que procesar cualquier petición
$xajax->processRequests();
?> 
ademas, si estas utilizando la version 0.2algo, te sirve hacer addAsign, de lo contrario solo debes de escribir assign.

si no te funciona, posteas y miramos haber que mas se puede hacer.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:33.