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>   Gracias a tod@s de antemano.
Salud'Os!
 

