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

Problema consulta ajax

Estas en el tema de Problema consulta ajax en el foro de Frameworks JS en Foros del Web. hola que tal, tengo un problema en una consulta a mi BD ya que quiero hacer una consulta con una variable enviada desde un formulario ...
  #1 (permalink)  
Antiguo 05/09/2010, 23:48
 
Fecha de Ingreso: mayo-2008
Ubicación: Guadalajara
Mensajes: 10
Antigüedad: 16 años
Puntos: 0
Problema consulta ajax

hola que tal, tengo un problema en una consulta a mi BD ya que quiero hacer una consulta con una variable enviada desde un formulario ej.

$sql = mysql_query("SELECT * FROM empleados WHERE nombres='".$nombre."'");

el problema es que no puedo pasar mi variable, o al menos no puedo mostrarla en pantalla, ya que al hacer la consulta de la sig. manera me muestra todos el contenido de la tabla

$sql = mysql_query("SELECT * FROM empleados");

he probado mi php sin ajax y va del todo bien, he pensado en xml el problema es que no se como debo hacerlo, agradeceré su apoyo.
  #2 (permalink)  
Antiguo 06/09/2010, 15:25
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 4 meses
Puntos: 126
Respuesta: Problema consulta ajax

Hola

Está claro lo que ocurre, el error lo tienes un la línea 13. Muestra el javascript, no somos videntes

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #3 (permalink)  
Antiguo 06/09/2010, 20:10
 
Fecha de Ingreso: mayo-2008
Ubicación: Guadalajara
Mensajes: 10
Antigüedad: 16 años
Puntos: 0
Respuesta: Problema consulta ajax

perdon por ser tan austero en mi pregunta, pense ser objetivo te detallo mi html seguido de mi javascript y mi php, agradezco tu apoyo.

Código HTML:
Ver original
  1. <div id="scontainer">
  2. <form name="consulta" action="" onsubmit="showQuery('query.php'); return false">
  3.   <div id="search_container">
  4.     <p><span>Cuenta:&nbsp;</span><input name="account" type="text" size="40" maxlength="50" />&nbsp;&nbsp;
  5.     <span>Nombre:&nbsp;</span><input name="nombre" type="text" size="40" maxlength="50" />&nbsp;&nbsp;
  6.     <input name="Submit" type="submit" value="Submit" /></p>
  7.   </div>  
  8. </form>
  9. </div>
  10. <div id="resultado"></div>

Código Javascript:
Ver original
  1. function getXMLHTTPRequest() {
  2. try {
  3. req = new XMLHttpRequest();
  4. } catch(err1) {
  5.   try {
  6.   req = new ActiveXObject("Msxml2.XMLHTTP");
  7.   } catch (err2) {
  8.     try {
  9.     req = new ActiveXObject("Microsoft.XMLHTTP");
  10.     } catch (err3) {
  11.       req = false;
  12.     }
  13.   }
  14. }
  15. return req;
  16. }
  17.  
  18. var http = getXMLHTTPRequest();
  19.  
  20. function showQuery(datos){
  21.         divResultado = document.getElementById('resultado');
  22.         http.open("GET", datos);
  23.         http.onreadystatechange=function() {
  24.                 if (http.readyState==4) {
  25.                     if(http.status == 200) {
  26.                         divResultado.innerHTML = http.responseText
  27.                     }
  28.                 }
  29.         }
  30.         http.send(null)
  31. }

Código PHP:
Ver original
  1. <?php
  2. // open class conection
  3. $DB = new DBConfig();
  4. $DB -> config();
  5. $DB -> conn();
  6.  
  7. if ($_GET['nombre'])$nombre = $_GET['nombre'];
  8.  
  9. // Formulate Query
  10.  
  11. $nombre = mysql_real_escape_string($nombre);
  12.  
  13. //$query = "SELECT * FROM empleados"; //TRABAJA A LA PERFECCION
  14. //$query = "SELECT * FROM empleados WHERE nombres='".$nombre."'"; //NO FUNCIONA
  15. $query = sprintf("SELECT * FROM empleados WHERE nombres='%s'",$nombre); //NO FUNCIONA
  16.  
  17. // Perform Query
  18. $sql = mysql_query($query);
  19.  
  20. // Check result
  21. // This shows the actual query sent to MySQL, and the error. Useful for debugging.
  22. if (!$sql) {
  23.     $message  = 'Invalid query: ' . mysql_error() . "\n";
  24.     $message .= 'Whole query: ' . $query;
  25.     die($message);
  26. }else{
  27.  
  28. // Use result
  29. echo "<p>Nombres - Departamento - Sueldo</p> \n";
  30. while($row = mysql_fetch_array($sql)){
  31.         echo "<p>".$row['nombres']." - ".$row['departamento']." - ".$row['sueldo']."</p>\n";}
  32.  
  33. // Free the resources associated with the result set
  34. // This is done automatically at the end of the script
  35.  
  36. //close connection
  37. $DB -> close();
  38. ?>
  #4 (permalink)  
Antiguo 06/09/2010, 20:32
 
Fecha de Ingreso: enero-2009
Ubicación: Neiva, Huila
Mensajes: 196
Antigüedad: 15 años, 3 meses
Puntos: 2
Respuesta: Problema consulta ajax

el problema compañero es que no estas pasando la variable....haber si quieres te ayudo...=)
  #5 (permalink)  
Antiguo 06/09/2010, 20:44
 
Fecha de Ingreso: mayo-2008
Ubicación: Guadalajara
Mensajes: 10
Antigüedad: 16 años
Puntos: 0
Respuesta: Problema consulta ajax

si amigo gracias como hay que pasar la variable?
  #6 (permalink)  
Antiguo 06/09/2010, 20:51
 
Fecha de Ingreso: enero-2009
Ubicación: Neiva, Huila
Mensajes: 196
Antigüedad: 15 años, 3 meses
Puntos: 2
Respuesta: Problema consulta ajax

Codigo HTML

Código HTML:
<div id="scontainer">
<form name="consulta" action="" onsubmit="showQuery('query.php',consulta); return false">
  <div id="search_container">
    <p><span>Cuenta:&nbsp;</span><input name="account" type="text" size="40" maxlength="50" />&nbsp;&nbsp;
    <span>Nombre:&nbsp;</span><input name="nombre" type="text" size="40" maxlength="50" />&nbsp;&nbsp;
    <input name="Submit" type="submit" value="Submit" /></p>
  </div>  
</form>
</div>
<div id="resultado"></div> 

Código Javascript:

Código HTML:
function getXMLHTTPRequest() {
try {
req = new XMLHttpRequest();
} catch(err1) {
  try {
  req = new ActiveXObject("Msxml2.XMLHTTP");
  } catch (err2) {
    try {
    req = new ActiveXObject("Microsoft.XMLHTTP");
    } catch (err3) {
      req = false;
    }
  }
}
return req;
}
 
var http = getXMLHTTPRequest();
 
function showQuery(datos,f){
        divResultado = document.getElementById('resultado');
        var url=datos+'?account='+f.account.value+'&nombre='+f.nombre.value+'&aleatorio=' + Math.random();
        http.open("GET", url);
        http.onreadystatechange=function() {
                if (http.readyState==4) {
                    if(http.status == 200) {
                        divResultado.innerHTML = http.responseText
                    }
                }
        }
        http.send(null)
}

Código PHP:

Código PHP:
<?php
// open class conection
$DB = new DBConfig();
$DB -> config();
$DB -> conn();
 
if (
$_GET['nombre'])$nombre $_GET['nombre'];
 
// Formulate Query
 
$nombre mysql_real_escape_string($nombre);
 
//$query = "SELECT * FROM empleados"; //TRABAJA A LA PERFECCION
//$query = "SELECT * FROM empleados WHERE nombres='".$nombre."'"; //NO FUNCIONA
$query sprintf("SELECT * FROM empleados WHERE nombres='%s'",$nombre); //NO FUNCIONA
 
// Perform Query
$sql mysql_query($query);
 
// Check result
// This shows the actual query sent to MySQL, and the error. Useful for debugging.
if (!$sql) {
    
$message  'Invalid query: ' mysql_error() . "\n";
    
$message .= 'Whole query: ' $query;
    die(
$message);
}else{
 
// Use result
echo "<p>Nombres - Departamento - Sueldo</p> \n";
while(
$row mysql_fetch_array($sql)){
        echo 
"<p>".$row['nombres']." - ".$row['departamento']." - ".$row['sueldo']."</p>\n";}
 
// Free the resources associated with the result set
// This is done automatically at the end of the script
mysql_free_result($sql);}
 
//close connection
$DB -> close();
?>

cualquiera de las consultas sql te debe funcionar
  #7 (permalink)  
Antiguo 06/09/2010, 21:13
 
Fecha de Ingreso: mayo-2008
Ubicación: Guadalajara
Mensajes: 10
Antigüedad: 16 años
Puntos: 0
Respuesta: Problema consulta ajax

probe la smodificaciones que me se;alaste en el codigo y sigue sin funcionar
  #8 (permalink)  
Antiguo 06/09/2010, 21:26
 
Fecha de Ingreso: enero-2009
Ubicación: Neiva, Huila
Mensajes: 196
Antigüedad: 15 años, 3 meses
Puntos: 2
Respuesta: Problema consulta ajax

verifica la forma en que recoges...los datos prueba $_REQUEST en lugar de $_GET como para hacer la prueba...;)...señalame que pasa ...si te sale un error o algo =)
  #9 (permalink)  
Antiguo 06/09/2010, 21:34
 
Fecha de Ingreso: mayo-2008
Ubicación: Guadalajara
Mensajes: 10
Antigüedad: 16 años
Puntos: 0
Respuesta: Problema consulta ajax

No me marca error, de hecho habia probado $_REQUEST anteriormente, mi problema sigue de igual manera con cualquiera de las funciones, al hacer la consulta sin utilizar la variable me muestra todo el contenido de la tabla de manera satisfactoria y al consultarla con la variable desde el formulario solo me mestra los titulos que muestro con echo, se que si lo hiciera con xml leeria el contenido como string para poder imprimirlo, el problema es que no se como embeber la consulta en un script php que me arroje el xml.
  #10 (permalink)  
Antiguo 06/09/2010, 21:54
 
Fecha de Ingreso: enero-2009
Ubicación: Neiva, Huila
Mensajes: 196
Antigüedad: 15 años, 3 meses
Puntos: 2
Respuesta: Problema consulta ajax

no necesitas xml.....como te lo pase deberia funcionar...a no ser que tuviera un error de js...lo siento no tengo en que probarlo.
  #11 (permalink)  
Antiguo 07/09/2010, 19:21
 
Fecha de Ingreso: mayo-2008
Ubicación: Guadalajara
Mensajes: 10
Antigüedad: 16 años
Puntos: 0
De acuerdo Respuesta: Problema consulta ajax

agradezco tu ayuda amigo.
  #12 (permalink)  
Antiguo 08/09/2010, 05:53
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 4 meses
Puntos: 126
Respuesta: Problema consulta ajax

Hola

Prueba así. Fíjate en los cambios que he hecho
Cita:
function getXMLHTTPRequest() {
try {
req = new XMLHttpRequest();
} catch(err1) {
try {
req = new ActiveXObject("Msxml2.XMLHTTP");
} catch (err2) {
try {
req = new ActiveXObject("Microsoft.XMLHTTP");
} catch (err3) {
req = false;
}
}
}
return req;
}

var http = getXMLHTTPRequest();

function showQuery(f, datos){
divResultado = document.getElementById('resultado');
url = datos+ '?cuenta=' + f.account.value + '&nombre=' +f.nombre.value;
http.open("GET", url, true);
http.onreadystatechange=function() {
if (http.readyState==4) {
if(http.status == 200) {
divResultado.innerHTML = http.responseText;
}
}
}
http.send(null)
}


<div id="scontainer">
<form name="consulta" action="" onsubmit="showQuery(this, 'query.php'); return false">
<div id="search_container">
<p><span>Cuenta:&nbsp;</span><input name="account" type="text" size="40" maxlength="50" />&nbsp;&nbsp;
<span>Nombre:&nbsp;</span><input name="nombre" type="text" size="40" maxlength="50" />&nbsp;&nbsp;
<input name="Submit" type="submit" value="Submit" /></p>
</div>
</form>
</div>
<div id="resultado"></div>
Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #13 (permalink)  
Antiguo 08/09/2010, 17:56
 
Fecha de Ingreso: enero-2009
Ubicación: Neiva, Huila
Mensajes: 196
Antigüedad: 15 años, 3 meses
Puntos: 2
Respuesta: Problema consulta ajax

jejeje...es bueno mandar un numero aleatorio para que cuando hagas cambios sobre el archivo php que invocas con ajax...se vea reflejado inmediatamente y sin necesidad de abrir de nuevo la pagina....
  #14 (permalink)  
Antiguo 08/09/2010, 20:09
 
Fecha de Ingreso: mayo-2008
Ubicación: Guadalajara
Mensajes: 10
Antigüedad: 16 años
Puntos: 0
Respuesta: Problema consulta ajax

Te agradezco bastante, ya había conseguido embeber la consulta en un xml, pero tu ayuda facilita las cosas, agradezco mucho tu aporte

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 21:23.