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

cargar pagina con ajax

Estas en el tema de cargar pagina con ajax en el foro de Frameworks JS en Foros del Web. Hola chicos, gracias por su atencion. Mi problema es que tengo una pagina donde mediante php se crea una tabla con los datos que recibe ...
  #1 (permalink)  
Antiguo 23/02/2011, 10:31
 
Fecha de Ingreso: febrero-2011
Mensajes: 2
Antigüedad: 13 años, 9 meses
Puntos: 0
Pregunta cargar pagina con ajax

Hola chicos, gracias por su atencion. Mi problema es que tengo una pagina donde mediante php se crea una tabla con los datos que recibe de una consulta a la base de datos que esta en mysql. Lo que se muestra en esta pagina es los usuarios existentes en la base de datos y me da la posibilidad de crear uno nuevo mediante un boton que muestra un formulario donde se llenan los datos y al darle al boton crear nueva cuenta, envia los datos mediante ajax a una pagina php que lo que hace es insertar el nuevo usuario, entonces lo que quiero es que despues de esto se recargue la pagina para que se vea el usuarios nuevo en la tabla que los lista todos y no se como hacerlo. Gracias por adelantado.
  #2 (permalink)  
Antiguo 23/02/2011, 10:56
 
Fecha de Ingreso: diciembre-2010
Mensajes: 24
Antigüedad: 14 años
Puntos: 1
Respuesta: cargar pagina con ajax

Esa tabla donde tienes los usuarios, debería estar dentro de un div. Pues cuando insertes por ajax, que la respuesta de ese script sean todos los datos de la tabla usuarios, lo procesas por javascript, te creas tu nueva tabla en javascript y recargas el div por javascript

Esa es la idea, si necesitas algo de código, dímelo.
  #3 (permalink)  
Antiguo 23/02/2011, 11:47
 
Fecha de Ingreso: febrero-2011
Mensajes: 2
Antigüedad: 13 años, 9 meses
Puntos: 0
Respuesta: cargar pagina con ajax

Gracias por responderme, mira esta funcion es la que llamo dentro del formulario de la pagina para que me cree la tabla con los datos que estan en la bd hasta el momento y la funcion en js mostrar_lightbox('over1') lo que hace es mostrar el div over1 que son los campos que hay que llenar para crear uno nuevo, este tiene un boton que se llama accion que es el que mediante js crea el objeto ajax y manda los datos de este form a una pagina php que lo unico que hace es insertar ese nuevo usuario y despues de esto lo que quiero es que se ejecute nuevamente mi funcion php que crea la tabla para que coja todos los valores de antes mas el nuevo que cree, pero sin recargar la pagina. Gracias

Código PHP:
Ver original
  1. function genera_administracion_consultores()
  2. {  
  3.     $datos = consultores();
  4.     $nombre = $datos[0];
  5.     $correo = $datos[1];
  6.     $usuario = $datos[2];
  7.     $contrasena = $datos[3];
  8.     $permisos = $datos[4];
  9.     echo '<span class="style14">'.utf8_encode("Consultores").'</span><br/><br/>
  10.     <table width="557" border="0" cellspacing="6" cellpadding="0">
  11.     <tr>
  12.     <td width="22" align="left" valign="top">
  13.     <a href="'; ?>javascript:mostrar_lightbox('over1')<?php echo '">
  14.     <img src="images/icon-add_usuario2.jpg" width="22" height="22" border="0"/>
  15.     </a>
  16.     </td>
  17.     <td width="22" align="right" valign="top">
  18.     <a href="#">
  19.     <img src="images/icon-delete_usuarios2.jpg" width="22" height="22" border="0"/>
  20.     </a>
  21.     </td>
  22.     <td width="489" align="left" valign="middle">&nbsp;</td>
  23.     </tr>
  24.     </table>
  25.     <table width="557" border="0" cellspacing="6" cellpadding="0" class="tabla_juntar_bordes">
  26.     <tr height="22" class="borde_solid_encabezado2">
  27.     <td width="22" align="left" valign="middle">
  28.     <input type="checkbox" name="check_all" id="check_all" onClick="'; ?>javascript:check_uncheck_all('consultores')<?php echo '"/>
  29.     </td>
  30.     <td width="200" align="left" valign="middle" class="style11">'.utf8_encode("USUARIO").'</td>
  31.     <td width="259" align="left" valign="middle" class="style11">'.utf8_encode("NOMBRE").'</td>
  32.     <td width="20" align="left" valign="middle">&nbsp;</td>
  33.     <td width="20" align="right" valign="middle">&nbsp;</td>
  34.     </tr>';
  35.     for ($i = 0; $i < sizeof($usuario); $i++)
  36.     {      
  37.         if (sizeof($usuario) > 1)
  38.         {
  39.             if ($i == 0)
  40.             {
  41.                 echo '<tr height="22" class="borde_dashed3">';
  42.             }
  43.             elseif ($i == (sizeof($usuario) - 1))
  44.             {
  45.                 echo '<tr height="21" class="borde_solid2">';
  46.             }
  47.             else
  48.             {
  49.                 echo '<tr height="21" class="borde_dashed3">';
  50.             }
  51.         }
  52.         else
  53.         {
  54.             echo '<tr height="22" class="borde_solid2">';
  55.         }        
  56.         echo '<td align="left" valign="middle"><input type="checkbox" name="check'.$i.'" id="check'.$i.'"/></td>
  57.         <td align="left" valign="middle" class="style9">'.$usuario[$i].'</td>
  58.         <td align="left" valign="middle" class="style9">'.$nombre[$i].'</td>
  59.         <td align="left" valign="middle"><img src="images/icon-edit.jpg" width="16" height="16"/></td>
  60.         <td align="right" valign="middle"><img src="images/icon-delete.jpg" width="16" height="16"/></td>
  61.         </tr>';
  62.     }  
  63.     echo '</table>
  64.     <div id="acciones_div" style="display:none;"></div>
  65.     <div id="over1" class="overbox1" style="display:none">
  66.     <div id="over1_header" class="overbox_header">
  67.     <div id="accion_nuevo" style="float:left; padding-left:6px;"><strong>'.utf8_encode("Nuevo Consultor").'</strong></div>
  68.     <div id="accion_editar" style="float:left; padding-left:6px; display:none;"><strong>'.utf8_encode("Editar Consultor").'</strong></div>
  69.     </div>
  70.     <div id="over1_body" class="overbox_body">
  71.     <table width="494" border="0" cellspacing="0" cellpadding="0" class="tabla_juntar_bordes">
  72.     <tr height="40">
  73.     <td colspan="3" align="left" valign="top" class="style11">'.utf8_encode("NOMBRE COMPLETO").'<br/>
  74.     <input name="nombre_consultor" id="nombre_consultor" value="" type="text" class="edit5"/>
  75.     </td>
  76.     <td width="10" rowspan="4" align="left" valign="top" class="style11">&nbsp;</td>
  77.     <td width="174" rowspan="4" align="left" valign="top" class="style11">
  78.     <div class="rectangulo_permisos">&nbsp;'.utf8_encode("PERMISOS").'<br/><br/>
  79.     <div style="float:left;">
  80.     <input name="permiso_consultores" id="permiso_consultores" type="checkbox" value="consultores"/><br/>
  81.     <input name="permiso_clientes" id="permiso_clientes" type="checkbox" value="clientes"/><br/>
  82.     <input name="permiso_puestos_trabajo" id="permiso_puestos_trabajo" type="checkbox" value="puestos_trabajo"/><br/>
  83.     <input name="permiso_catalogos" id="permiso_catalogos" type="checkbox" value="catalogos"/><br/>
  84.     <input name="permiso_articulos" id="permiso_articulos" type="checkbox" value="articulos"/><br/>
  85.     <input name="permiso_archivos_descarga" id="permiso_archivos_descarga" type="checkbox" value="archivos_descarga"/><br/>
  86.     <input name="permiso_direccion_contacto" id="permiso_direccion_contacto" type="checkbox" value="direccion_contacto"/>                    
  87.     </div>
  88.     <div style="float:left; line-height:19px;">
  89.     <span class="style9">'.utf8_encode("consultores").'</span><br/>                
  90.     <span class="style9">'.utf8_encode("clientes").'</span><br/>                
  91.     <span class="style9">'.utf8_encode("puestos de trabajo").'</span><br/>
  92.     <span class="style9">'.utf8_encode("catálogos").'</span><br/>
  93.     <span class="style9">'.utf8_encode("artículos").'</span><br/>
  94.     <span class="style9">'.utf8_encode("archivos de descarga").'</span><br/>
  95.     <span class="style9">'.utf8_encode("dirección de contacto").'</span>
  96.     </div>
  97.     </div>
  98.     </td>
  99.     </tr>
  100.     <tr height="40">
  101.     <td width="150" align="left" valign="top" class="style11">'.utf8_encode("USUARIO").'<br/>
  102.     <input name="usuario_consultor" id="usuario_consultor" value="" type="text" class="edit1"/>
  103.     </td>
  104.     <td width="10" align="left" valign="top" class="style11">&nbsp;</td>
  105.     <td width="150" align="left" valign="top" class="style11">'.utf8_encode("CONTRASEÑA").'<br/>
  106.     <input name="contrasena_consultor" id="contrasena_consultor" value="" type="password" class="edit1"/>
  107.     </td>
  108.     </tr>
  109.     <tr height="40">
  110.     <td colspan="3" align="left" valign="top" class="style11">'.utf8_encode("CORREO ELECTRÓNICO").'<br/>
  111.     <input name="correo_consultor" id="correo_consultor" value="" type="text" class="edit5"/>
  112.     </td>
  113.     </tr>
  114.     <tr>
  115.     <td colspan="3" align="left" valign="bottom" class="style11">
  116.     <input type="button" name="accion" id="accion" value="Crear" class="button1" onclick="enviar_consultor()"/>&nbsp;&nbsp;
  117.     <input type="button" name="cancelar" id="cancelar" value="Cancelar" class="button1" onclick="'; ?>javascript:ocultar_lightbox('over1')<?php echo '"/>
  118.     </td>
  119.     </tr>
  120.     </table>
  121.     </div>
  122.     </div>';
  123. }
  #4 (permalink)  
Antiguo 24/02/2011, 11:26
 
Fecha de Ingreso: diciembre-2010
Mensajes: 24
Antigüedad: 14 años
Puntos: 1
Respuesta: cargar pagina con ajax

El problema está en que quieres llamar a la función PHP y lo tienes que hacer por javascript. Vamos por pasos:
- Cuando insertes al usuario el script te debería devolver un XML con todos los datos
de la tabla a mostrar. O sea, te vas componiendo un xml con lo que tengas en la tabla después de insertar.
- Ahora, en la función de respuesta válida de la petición ajax, te llamas a otra función que te parsea el XML. Creas una tabla en javascript (con la misma estructura que tienes en php) y sustituyes el div de la tabla que tenías por lo que te has parseado en javascript.
Muestramé el código de la respuesta ajax y del javascript que tienes ahora.

Etiquetas: ajax
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 09:00.