Buenas, tengo un problema que no se porque me pasa y me trae de cabeza...les explico. Tengo un menu desplegable en css que segun la opcion escogida carga una cosa u otra en el mainContent, hasta aquí todo bien. El problema viene cuando lo que cargo es un formulario, una vez cargado los botones de enviar no me funcionan y no se porque, por lo que la utilidad de la pagina es nula. Sin embargo si cargo directamente los archivos si que me funcionan. ¿Alguien sabe como solucionar esto?
Llamada de la funcion al formulario (lo hace bien)
Código HTML:
<li><a class="nivel1" href="#" onclick="return principal('./cuenta/prueba.php','mainContent');">Login</a></li>
Funcion pincipal
Código:
function principal(pagina,divID)
{
var XMLHttpRequestObject = false;
if (window.XMLHttpRequest)
{
XMLHttpRequestObject = new XMLHttpRequest();
}
else if (window.ActiveXObject)
{
XMLHttpRequestObject = new ActiveXObject("Microsoft.XMLHTTP");
}
if(XMLHttpRequestObject)
{
var mostrar = document.getElementById(divID);
XMLHttpRequestObject.open("GET", pagina, true);
XMLHttpRequestObject.onreadystatechange = function()
{
if (XMLHttpRequestObject.readyState == 4 && XMLHttpRequestObject.status == 200)
{
mostrar.innerHTML = XMLHttpRequestObject.responseText;
}
}
XMLHttpRequestObject.send(null);
}
}
El formulario, este es el de desarrolloweb, es con el que estoy haciendo pruebas, por si solo funciona,cuando lo cargo con la funcion principal no.
Código PHP:
<?php
//incluímos la clase ajax
require ('xajax/xajax_core/xajax.inc.php');
//instanciamos el objeto de la clase xajax
$xajax = new xajax();
function procesar_formulario($form_entrada){
$salida = "Gracias por enviarnos tus datos. Hemos procesado esto:<p>";
$salida .= "Nombre: " . $form_entrada["nombre"];
$salida .= "<br>Apellidos: " . $form_entrada["apellidos"];
//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->assign("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->processRequest();
?>
<html>
<head>
<title>Enviar y procesar un formulario con Ajax y PHP</title>
<?php
//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: <input type="text" name="nombre">
<br>
Apellidos: <input type="text" name="apellidos">
<br>
<input type="button" value="Enviar" onclick="xajax_procesar_formulario(xajax.getFormValues('formulario'))">
</form>
</div>
</body>
</html>