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

Consultas en Bases de Datos

Estas en el tema de Consultas en Bases de Datos en el foro de Frameworks JS en Foros del Web. Hola a todos, lo primero deciros que no tengo mucha idea de Ajax. Tengo una pagina casi terminada con un monton de formularios y todos ...
  #1 (permalink)  
Antiguo 10/06/2009, 05:52
thi
 
Fecha de Ingreso: abril-2009
Mensajes: 244
Antigüedad: 15 años, 8 meses
Puntos: 0
Consultas en Bases de Datos

Hola a todos,

lo primero deciros que no tengo mucha idea de Ajax. Tengo una pagina casi terminada con un monton de formularios y todos ellos hacen consultas a la base de datos, estas consultas las hago con PHP, y aunque me resulte tener que volver a hacer de nuevo las consultas me gustaría intentar hacerlas con Ajax, pues por lo que he podido ver las consultas con Ajax no recargan toda la pagina como con PHP y la verdad me parece mucho más estetico que de repente salga la tabla con el resultado de la consulta que no que me recarge toda la pagina.

He oido que con jquery esta ya programado, no se si me equivoco, si es asi podría intentarlo si me dais alguna idea de como se harian las consultas con Ajax, e intentaría adaptarlo a mi pagina.

Un saludo.
  #2 (permalink)  
Antiguo 10/06/2009, 07:28
 
Fecha de Ingreso: julio-2008
Ubicación: Alcañiz-Teruel-España
Mensajes: 182
Antigüedad: 16 años, 5 meses
Puntos: 5
Respuesta: Consultas en Bases de Datos

Buenas Thi

Por lo que veo no tienes muy claros los conceptos. Hasta donde yo se, y si estoy confundido espero me rectifiquen, AJAX (Asinconous JAvascript XML) es un tecnología que te permite realizar peticiones asincronas al servidor. No es un lenguaje de programación es una metodología de trabajo combinando un lenguaje del lado del cliente (Javascript), XMLHttpRequest, y un lenguaje del lado del servidor como puede ser PHP. Estas peticiones son totalmente transparentes para el cliente (No se refresca la pantalla).

La forma de trabajar sería muy similar, ya que una petición AJAX no es más que pedirle al servidor que procese cierto script PHP (en tu caso) y que te retorne los resultados (código HTML) que tu inyectarás en el objeto de tu página que más te convenga.

Ciertamente JQuery es un buen FW para trabajar con AJAX y aunque yo no lo he usado nunca he de decirte que simplifica mucho las cosas y es bastante potente en cuestion de efectos y demás. Hay muchos ejemplos tanto en este foro como en la red.

Yo te puedo pasar algun ejemplo sencillo de como hacerlo pero sin usar FW que es como yo trabajo. Sólo tienes que pedirlo.

Espero que hayas entendido mi explicación ya que creo que es importante entender esto para empezar a trabajar de esta forma.

Saludos,
__________________
Si quieres puedes y si puedes debes. Imposible is nothing!!!
  #3 (permalink)  
Antiguo 10/06/2009, 12:27
thi
 
Fecha de Ingreso: abril-2009
Mensajes: 244
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Consultas en Bases de Datos

Hola matak,

creo que te he entendido, para utilizar Ajax se debería crear un archivo html con el formulario y en el que se pondría la petición Ajax al servidor a traves un archivo PHP que es donde se pondría la consulta SQL.

Mi problema es que estoy utilizando Joomla y entonces tengo que poner el codigo dentro del Joomla.

De todos modos si me puedes pasar algún ejejmplo sencillo para saber exactamente la sintasis de como se haría, te lo agradecería.

Un saludo.
  #4 (permalink)  
Antiguo 11/06/2009, 02:24
 
Fecha de Ingreso: julio-2008
Ubicación: Alcañiz-Teruel-España
Mensajes: 182
Antigüedad: 16 años, 5 meses
Puntos: 5
Respuesta: Consultas en Bases de Datos

Buenas thi,

Ahi va un pequeño ejemplo...

Base de Datos: prueba
Tabla: miTabla
-campo1 varchar(10)
-campo2 varchar(10)

index.php
Código php:
Ver original
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  2. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
  4. <head>
  5.  
  6. <meta http-equiv="Content-Language" content="es">
  7. <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
  8.  
  9. <title>Prueba Ajax</title>
  10. <script type="text/javascript" language="javascript" src="ajax.js"></script>
  11. </head>
  12. <body>
  13. </body>
  14. <form METHOD="POST" NAME="inert" ACTION="" ENCTYPE="multipart/form-data">
  15.       Campo1:&nbsp;<INPUT TYPE="TEXT" id="campo1" NAME="campo1" SIZE="10" MAXLENGTH="10" />
  16.       Campo2:&nbsp;<INPUT TYPE="TEXT" id="campo2" NAME="campo2" SIZE="10" MAXLENGTH="10" />
  17. <br/>
  18.       <INPUT TYPE="button" NAME="aceptar" VALUE="Enviar" onclick="javascript:peticionAjax('addTabla.php?campo1='+document.getElementById('campo1').value+'&campo2='+document.getElementById('campo2').value,'contenido');javascript:document.getElementById('campo1').value='';document.getElementById('campo2').value='';"/>
  19. </form>
  20. <br/>
  21. <div id="contenido">
  22. <table>
  23.   <thead>
  24.     <tr>
  25.       <th>Campo1</th>
  26.       <th>Campo2</th>
  27.     </tr>
  28.   </thead>
  29.   <tbody>
  30. <?PHP
  31.  
  32. ////Conexión a la DB
  33.  
  34. $sql = "select * from miTabla";
  35. $query = mysql_query($sql, $db) or die (mysql_error($db));
  36. while ($resultado = mysql_fetch_array($query)){
  37. ?>
  38.     <tr>
  39.       <td><?PHP echo $resultado['campo1']; ?></td>
  40.       <td><?PHP echo $resultado['campo2']; ?></td>
  41.     </tr>
  42. <?PHP
  43. }
  44. ?>
  45.   </tbody>
  46. </table>
  47. </div>
  48. </body>
  49. </html>

ajax.js
Código javascript:
Ver original
  1. var ajax=null;
  2. //Funcion que crea el objeto ajax
  3. function objetoAjax(){
  4.     var xmlhttp=false;
  5.     try {
  6.         xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
  7.     } catch (e) {
  8.         try {
  9.            xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
  10.         } catch (E) {
  11.             xmlhttp = false;
  12.     }
  13.     }
  14.  
  15.     if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
  16.         xmlhttp = new XMLHttpRequest();
  17.     }
  18.     return xmlhttp;
  19. }
  20.  
  21. function peticionAjax(url,idDestino){
  22.     if (ajax==null) {
  23.       objDestino=document.getElementById(idDestino)
  24.       ajax=objetoAjax();
  25.       ajax.open("POST", url, true);
  26.       ajax.onreadystatechange=function() {
  27.           if (ajax.readyState==4) {
  28.               objDestino.innerHTML = ajax.responseText
  29.               ajax = null
  30.           }
  31.       }
  32.       ajax.send(null)
  33.     }else{
  34.       setTimeout("f1('"+url+"','"+divcontenido+"')",1)
  35.     }
  36. }

addTabla.php
Código php:
Ver original
  1. <?PHP
  2. header('Content-Type: text/xml; charset=ISO-8859-1');
  3.  
  4. /////Conexión a la BD
  5.  
  6. $sql="INSERT INTO miTabla (campo1,campo2) VALUES ('".$_REQUEST['campo1']."','".$_REQUEST['campo2']."')";
  7. $query = mysql_query($sql, $db) or die (mysql_error($db));
  8. ?>
  9. <table>
  10.   <thead>
  11.     <tr>
  12.       <th>Campo1</th>
  13.       <th>Campo2</th>
  14.     </tr>
  15.   </thead>
  16.   <tbody>
  17. <?PHP
  18. $sql = "select * from miTabla";
  19. $query = mysql_query($sql, $db) or die (mysql_error($db));
  20. while ($resultado = mysql_fetch_array($query)){
  21. ?>
  22.     <tr>
  23.       <td><?PHP echo $resultado['campo1']; ?></td>
  24.       <td><?PHP echo $resultado['campo2']; ?></td>
  25.     </tr>
  26. <?PHP
  27. }
  28. ?>
  29.   </tbody>
  30. </table>

Es un ejemplo muy muy sencillo. Si lo montas tal y como te lo pongo creando la BD y tablas tal cual funciona, lo he probado.

Ya dirás

Saludos...
__________________
Si quieres puedes y si puedes debes. Imposible is nothing!!!
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:29.