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

Problema validar formulario con xajax

Estas en el tema de Problema validar formulario con xajax en el foro de Frameworks JS en Foros del Web. Hola buenas, hace poco que estoy haciendo experimentos con xajax y no tengo mucha idea. Me descargue un ejemplo de validacion de formulario para probar ...
  #1 (permalink)  
Antiguo 22/01/2011, 13:20
Avatar de Joystickoso  
Fecha de Ingreso: enero-2009
Mensajes: 127
Antigüedad: 15 años, 10 meses
Puntos: 3
Pregunta Problema validar formulario con xajax

Hola buenas, hace poco que estoy haciendo experimentos con xajax y no tengo mucha idea. Me descargue un ejemplo de validacion de formulario para probar justo cuando mi servidor habitual dio problemas y no pude probarlo. Así que me registre en otro sitio y subi el ejemplo para probarlo y funciono a la primera. El caso es que mi servidor a vuelto a funcionar y resulta que la misma pagina no funciona.
Mas concretamente el problema es que cuando le doy al boton de enviar del formulario la funcion "procesar_formulario" me dice que debo escribir el nombre como si estuviese vacio.
El código es:
Código PHP:
<?php require_once('Connections/comentarios.php'); ?>
<?
//incluímos la clase ajax
require ('xajax/xajax_core/xajax.inc.php');

//instanciamos el objeto de la clase xajax
$xajax = new xajax();
$xajax->setCharEncoding('ISO-8859-1');
$xajax->configure('decodeUTF8Input',true);

function 
muestra_formulario(){
   
//creo el xajaxResponse para generar una salida
$respuesta = new xajaxResponse();
   
   
$codigo_formul '<form id="formulario">
Nombre: <input type="text" name="nombre" />
<br />
Apellidos: <input type="text" name="apellidos" />
<br />
<textarea name="cuerpo"></textarea>
<br />
<input type="button" value="Enviar" onclick="xajax_procesar_formulario(xajax.getFormValues(\'formulario\'))" />
</form>
'
;
   
//mostramos en capa capaformulario el texto código HTML del formulario
   
$respuesta->assign("capaformulario","innerHTML","$codigo_formul");
   return 
$respuesta;
   
}

$connectid mysql_pconnect($hostname_comentarios$username_comentarios$password_comentarios);
mysql_select_db($database_comentarios,$connectid);

function 
procesar_formulario($form_entrada){
   
//creo el xajaxResponse para generar una salida
$respuesta = new xajaxResponse();

   
//validación
   
$error_form "";
   if (
$form_entrada["nombre"] == "")
      
$error_form "Debes escribir tu nombre";
   elseif (
$form_entrada["apellidos"] == "")
      
$error_form "Debes escribir tus apellidos";
   elseif (
strlen($form_entrada["cuerpo"]) < 10)
      
$error_form "El comentario debe tener al menos 10 caracteres";
      
   
//compruebo resultado de la validación
   
if ($error_form != ""){
      
//Hubo un error en el formulario
      //en la capa donde se muestran mensajes, muestro el error
      
$respuesta->assign("mensaje","innerHTML","<span style='color:red;'>$error_form</span>");
   }else{
      
//es que no hubo error en el formulario
       
$ssql "insert into pruebas (nombre, apellidos, comentario) values ('" $form_entrada["nombre"] . "', '" $form_entrada["apellidos"] . "', '" $form_entrada["cuerpo"] . "')";
   
   if (
mysql_query($ssql)){
      
$salida "Hemos procesado esto:<p>";
      
$salida .= "Nombre: " $form_entrada["nombre"];
      
$salida .= "<br>Apellidos: " $form_entrada["apellidos"];
      
$salida .= "<br>Comentario: " $form_entrada["cuerpo"];
      
$salida "Insertado correctamente";
   }else{
      
$salida "No se ha insertado. Este es el error: " mysql_error();
   }
      
      
//mostramos en capa mensaje el texto que está todo correcto
      
$respuesta->assign("mensaje","innerHTML","<span style='color:blue;'>Todo correcto... Muchas gracias!</span>");
      
//escribimos en la capa con id="capaformulario" el texto que aparece en $salida
      
$respuesta->assign("capaformulario","innerHTML",$salida);
      
      
//tenemos que devolver la instanciación del objeto xajaxResponse
   
}
   return 
$respuesta;
}
//registramos la función creada anteriormente al objeto xajax
$xajax->registerFunction("muestra_formulario");
$xajax->registerFunction("procesar_formulario");

//El objeto xajax tiene que procesar cualquier petición
$xajax->processRequest();
?>
<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>

<div id="mensaje"></div>
<br />
<div id="capaformulario">
<a href="#" onClick="xajax_muestra_formulario()">Escribe un comentario del artículo</a>.
</div>

</body>
</html>
Lo primero que se me ocurrió es que por lo que sea mi sevidor no me permite hacer esto pero el caso es que el ejemplo del "thewall" de la página de Xajax si que me funciona. Seguro que es alguna tonteria pero, que es lo que hago mal?
Gracias a tod@s de antemano.
Salud'Os!
  #2 (permalink)  
Antiguo 22/01/2011, 14:38
Avatar de Joystickoso  
Fecha de Ingreso: enero-2009
Mensajes: 127
Antigüedad: 15 años, 10 meses
Puntos: 3
Respuesta: Problema validar formulario con xajax

Solucionado!

Despues de mucho y mucho probar, he borrado estas dos lineas:
Código PHP:
$xajax->setCharEncoding('ISO-8859-1');
$xajax->configure('decodeUTF8Input',true); 
Y ahora funciona perfectamente igual que en el otro servidor.
Aunque lo he solucionado, me gustaría saber que tienen que ver esas dos lineas o una de ellas para que no me funcione en un servidor y en otro si.

Gracias de todas formas.
Salud'Os!!!

Etiquetas: ajax, xajax, formulario
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 05:51.