Foros del Web » Programando para Internet » Javascript »

Pagina cargada en div no graba informacion PHP+AJAX

Estas en el tema de Pagina cargada en div no graba informacion PHP+AJAX en el foro de Javascript en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 26/10/2011, 14:29
Avatar de 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.
  #2 (permalink)  
Antiguo 26/10/2011, 14:43
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Pagina cargada en div no graba informacion PHP+AJAX

Si el problema lo tienes en el navegador, es decir, que las acciones que deberían efectuarse no se ejecutan entonces tu problema no es de PHP.

Tu problema es de Javascript, por algún motivo nos e está ejecutando nada al respecto.

Intenta depurar tu código Javascript con Firefox+Firebug, y de ser posible usa librerías ya escritas para manejar Ajax de forma sencilla como jQuery.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.

Etiquetas: formulario, html, informacion, mysql, sql, usuarios
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 14:00.