Ver Mensaje Individual
  #1 (permalink)  
Antiguo 26/10/2011, 14:29
Avatar de dontripi
dontripi
 
Fecha de Ingreso: enero-2006
Mensajes: 240
Antigüedad: 18 años, 3 meses
Puntos: 1
Pagina cargada en div no graba informacion PHP+AJAX

Hola compañeros tengo una situacion con una pagina que cargo en un div, pero cuando le doy en el boton enviar no envia, se queda quieto por completo.

tengo una pagina que se llama menu.php, ahi cargo un menu y dentro de un div del menu cargo una pagina llamada tipoUsuario.php, a continuacion pongo el codigo de menu.php.

Código HTML:
<script>
function paginas (url, id_contenedor)
{
    var pagina_requerida = false;
    if (window.XMLHttpRequest)
    {
        // Si es Mozilla, Safari etc
        pagina_requerida = new XMLHttpRequest ();
    } else if (window.ActiveXObject)
    {
        // pero si es IE
        try 
        {
            pagina_requerida = new ActiveXObject ("Msxml2.XMLHTTP");
        }
        catch (e)
        {
            // en caso que sea una versión antigua
            try
            {
                pagina_requerida = new ActiveXObject ("Microsoft.XMLHTTP");
            }
            catch (e)
            {
            }
        }
    } 
    else
    return false;
    pagina_requerida.onreadystatechange = function ()
    {
        // función de respuesta
        cargarpagina (pagina_requerida, id_contenedor);
    }
    pagina_requerida.open ('GET', url, true); // asignamos los métodos open y send
    pagina_requerida.send (null);
}
// todo es correcto y ha llegado el momento de poner la información requerida
// en su sitio en la pagina xhtml
function cargarpagina (pagina_requerida, id_contenedor)
{
    if (pagina_requerida.readyState == 4 && (pagina_requerida.status == 200 || window.location.href.indexOf ("http") == - 1))
    document.getElementById (id_contenedor).innerHTML = pagina_requerida.responseText;
}
</script>
<script src="SpryAssets/SpryTabbedPanels.js" type="text/javascript"></script>
<link href="SpryAssets/SpryTabbedPanels.css" rel="stylesheet" type="text/css">
<div id="TabbedPanels1" class="TabbedPanels">
  <ul class="TabbedPanelsTabGroup">
    <li class="TabbedPanelsTab" tabindex="0">Inicio</li>
    <li class="TabbedPanelsTab" tabindex="0">Solicitudes</li>
  </ul>
  <div class="TabbedPanelsContentGroup">
    <div class="TabbedPanelsContent">Inicio</div>
    <div class="TabbedPanelsContent" id="contenidos">
    	<body onLoad="paginas('tipoUsuario.php','contenidos');">
    </div>
  </div>
</div>
<?php
echo "Menu Principal";
?>
<script type="text/javascript">
var TabbedPanels1 = new Spry.Widget.TabbedPanels("TabbedPanels1");
</script> 
hasta ahi me carga bien la pagina y la de tipoUsuario.php tiene el siguiente codigo:

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

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

 $connectid = mysql_connect("localhost", "root", "verdes");
 mysql_select_db("soporte",$connectid);

 function procesar_formulario($form_entrada){
    $ssql = "insert into tbl_tipo_usuario (id_tipo_usuario, tipo_usuario) values ('" . $form_entrada["idTipoUsuario"] . "' , '" . $form_entrada["tipoUsuario"] . "')";
    
    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->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>Ingreso De Tipo De Usuario</h1>
 <div id="mensaje">
 <form id="formulario">
 <table width="277" border="0">
  <tr>
    <td width="123">Codigo:</td>
    <td width="144"><label for="idTipoUsuario"></label>
      <input type="text" name="idTipoUsuario" id="idTipoUsuario" /></td>
  </tr>
  <tr>
    <td>Tipo Usuario:</td>
    <td><label for="tipoUsuario"></label>
      <input type="text" name="tipoUsuario" id="tipoUsuario" /></td>
  </tr>
  <tr>
    <td colspan="2" align="center"><input type="button" align="middle" name="enviar" id="enviar" value="Enviar" onClick="xajax_procesar_formulario(xajax.getFormValues('formulario'))"/></td>
    </tr>
</table>
 </form>
 </div>

 </body>
 </html> 
esta ultima pagina si la cargo directamente en el navegador funciona ok, pero desde el div se queda quieta, estoy usando XAJAX para hacer el procedimiento de ejecutar el php sin recargar, por favor si alguien me pudiera orientar un poco le agradeceria, quiero informarles que no soy muy avanzado en cuanto a usar ajax, muchas gracias de antemano.