Foros del Web » Programando para Internet » PHP »

Consultar datos

Estas en el tema de Consultar datos en el foro de PHP en Foros del Web. Que tal tengo una duda, tengo que consultar un dato en la BD y dependiendo de ese dato mostrar un valor en un campo de ...
  #1 (permalink)  
Antiguo 24/06/2013, 10:09
 
Fecha de Ingreso: abril-2009
Mensajes: 100
Antigüedad: 15 años
Puntos: 0
Consultar datos

Que tal tengo una duda, tengo que consultar un dato en la BD y dependiendo de ese dato mostrar un valor en un campo de texto. La idea es algo como un autocompletar en un campo de texto y al autocompletar la palabra que debe de venir de una BD mostrar un valor en un campo de texto.
No se si me explique bien, tengo entendido que usar php y ajax me puede servir, pero no se por donde empezar, si alguien me puede orientar un poco se los agradezco.

saludos
  #2 (permalink)  
Antiguo 24/06/2013, 11:16
(Desactivado)
 
Fecha de Ingreso: julio-2006
Mensajes: 273
Antigüedad: 17 años, 8 meses
Puntos: 5
Respuesta: Consultar datos

Puedes orientarte con el autocomplete de Jquery de las librerias UI

esas te serviran enormemente.

saludos
  #3 (permalink)  
Antiguo 24/06/2013, 11:55
 
Fecha de Ingreso: abril-2009
Mensajes: 100
Antigüedad: 15 años
Puntos: 0
Respuesta: Consultar datos

gracias por la respuesta y en efecto, ya consulte las librerias y me funciona pero tengo ahora un pequeño detalle, haber si me puedes resolver:
Tengo el siguiente codigo para generar campos dinamicos, 4 campos en especifico y quiero que se autocomplete con el campo de articulo
Código Javascript:
Ver original
  1. //------------------------------- FUNCION QUE GENERA LOS CAMPOS DINAMICOS PARA LOS ARTICULOS -------------------------//
  2. var contLin = 1, tr, td, tabla;
  3. function agregar() {
  4.  
  5. document.getElementById("OcultoContLin").value = contLin;
  6. tabla = document.getElementById('TablaMed');
  7. tr = tabla.insertRow(tabla.rows.length);
  8. td = tr.insertCell(tr.cells.length);
  9. // agregar [+ contLin] para asignar un numero a cada identificador del input text
  10. var Art="articulo"+contLin;
  11. var Can="cantidad"+contLin;
  12. var Tot="total"+contLin;
  13. var PUn="precioUnitario"+contLin;
  14.  
  15.  
  16. td.innerHTML = "<input type='text' size='15' name='"+Art+"' id='"+Art+"'  class='articulo' >";
  17. td = tr.insertCell(tr.cells.length);
  18.  
  19. td.innerHTML = "<input type='text' size='15' name='"+Can+"' id='"+Can+"'  >";
  20. td = tr.insertCell(tr.cells.length);
  21.  
  22. td.innerHTML = "<input type='text' size='15' name='"+PUn+"' id='"+PUn+"' >";
  23. td = tr.insertCell(tr.cells.length);
  24.  
  25. td.innerHTML = "<input type='text' size='15' name='"+Tot+"' id='"+Tot+"' class='importe_linea'  onFocus=\"calcular('"+Can+"','"+PUn+"','"+Tot+"');\"  >";
  26. td = tr.insertCell(tr.cells.length);
  27.  
  28.  
  29. contLin++;
  30.  
  31. }

Entonces con la siguiente funcion en teoria capturo la clase del campo articulo para saber en done autocompletare:
Código Javascript:
Ver original
  1. $().ready(function() {
  2.     $(".articulo").autocomplete("autocompletar.php", {
  3.         width: 260,
  4.         matchContains: true,
  5.         selectFirst: false
  6.     });
  7. });

Aqui mando llamar a un archivo php donde hago la busqueda en la BD de los articulos, no creo necesario poner este codigo pero aqui lo dejo:
Código PHP:
<?php
require_once "config.php";
$q strtolower($_GET["q"]);
if (!
$q) return;

$sql "select DISTINCT art as art from articulos where art LIKE '%$q%'";
$rsd mysql_query($sql);
while(
$rs mysql_fetch_array($rsd)) {
        
$cname $rs['art'];
        echo 
"$cname\n";
}
?>
probe con otros input "estaticos" y si funciona pero con los dinamicos aunque tenga la clase no los hago funcionar.

Alguna idea del porque no funciona?

saludos
  #4 (permalink)  
Antiguo 24/06/2013, 12:54
(Desactivado)
 
Fecha de Ingreso: julio-2006
Mensajes: 273
Antigüedad: 17 años, 8 meses
Puntos: 5
Respuesta: Consultar datos

No te compliques mucho amigo

Dentro de la variable availebleTags, rellenala con un foreach que venga de la base de datos, y en inpurt con name Tags y id Tags, se autocompleta es mejor usando las librerias jquery UI

Saludos

<script>
$(function() {
var availableTags = [
"ActionScript",
"AppleScript",
"Asp",
"BASIC",
"C",
"C++",
"Clojure",
"COBOL",
"ColdFusion",
"Erlang",
"Fortran",
"Groovy",
"Haskell",
"Java",
"JavaScript",
"Lisp",
"Perl",
"PHP",
"Python",
"Ruby",
"Scala",
"Scheme"
];
$( "#tags" ).autocomplete({
source: availableTags
});
});
</script>
  #5 (permalink)  
Antiguo 24/06/2013, 13:05
 
Fecha de Ingreso: abril-2009
Mensajes: 100
Antigüedad: 15 años
Puntos: 0
Respuesta: Consultar datos

Gracias por la respuesta, pero la lista de los nombres debo sacarla de la BD y otro punto es que no puedo renombrar los input de la manera normal, en el comentario anterior puse como los tengo declarados y no me toma el name o el id, entonces use el class para hacer referencia pero no me funciona.
  #6 (permalink)  
Antiguo 24/06/2013, 14:41
(Desactivado)
 
Fecha de Ingreso: julio-2006
Mensajes: 273
Antigüedad: 17 años, 8 meses
Puntos: 5
Respuesta: Consultar datos

Claro que de la base de datos los vas a sacar, lo que tenes que hacer es una consulta a la base y hacer un foreach

segundo

$( "#tags" ).autocomplete({
source: availableTags

si es class solo coloca

$( ".tags" ).autocomplete({
source: availableTags

un punto que quiere decir class, hace referencia al nombre de la clase. prueba haber si asi te funciona.

saludos
  #7 (permalink)  
Antiguo 24/06/2013, 15:06
 
Fecha de Ingreso: abril-2009
Mensajes: 100
Antigüedad: 15 años
Puntos: 0
Respuesta: Consultar datos

Gracias por las respuestas pero me confundo un poco, mira ya hago la consulta, y todo, si me autocompleta con input fijos, el problema es con los que yo estoy creando ahi no me hace referencia al que necestio:

Creo los 4 input text:
Código Javascript:
Ver original
  1. var contLin = 1, tr, td, tabla;
  2. function agregar() {
  3.  
  4. document.getElementById("OcultoContLin").value = contLin;
  5. tabla = document.getElementById('TablaMed');
  6. tr = tabla.insertRow(tabla.rows.length);
  7. td = tr.insertCell(tr.cells.length);
  8. // agregar [+ contLin] para asignar un numero a cada identificador del input text
  9. var Art="articulo"+contLin;
  10. var Can="cantidad"+contLin;
  11. var Tot="total"+contLin;
  12. var PUn="precioUnitario"+contLin;
  13.  
  14. td.innerHTML = "<input type='text' size='15' name='"+Art+"' id='"+Art+"'  class='articulo'>";
  15. td = tr.insertCell(tr.cells.length);
  16.  
  17. td.innerHTML = "<input type='text' size='15' name='"+Can+"' id='"+Can+"'  >";
  18. td = tr.insertCell(tr.cells.length);
  19.  
  20. td.innerHTML = "<input type='text' size='15' name='"+PUn+"' id='"+PUn+"' >";
  21. td = tr.insertCell(tr.cells.length);
  22.  
  23. td.innerHTML = "<input type='text' size='15' name='"+Tot+"' id='"+Tot+"' class='importe_linea'  onFocus=\"calcular('"+Can+"','"+PUn+"','"+Tot+"');\"  >";
  24. td = tr.insertCell(tr.cells.length);
  25.  
  26.  
  27. contLin++;
  28.  
  29. }

como se ve en el codigo el primer input es el de articulo, ahi es donde quiero usar el autocpmpletar le hago la referencia de class="articulo".

Ahora con este codigo busco en la BD lo que se este escribiendo en el campo que yo decida en este caso el que tiene la clase articulo (que es donde falla):
Código Javascript:
Ver original
  1. $().ready(function() {
  2.     $(".articulo").autocomplete("autocompletar.php", {
  3.         width: 260,
  4.         matchContains: true,
  5.         selectFirst: false
  6.     });
  7. });

La busqueda en la BD se hace de la siguiente manera:
Código PHP:
require_once "config.php";
$q strtolower($_GET["q"]);
if (!
$q) return;

$sql "select DISTINCT art as art from articulos where art LIKE '%$q%'";
$rsd mysql_query($sql);
while(
$rs mysql_fetch_array($rsd)) {
        
$cname $rs['art'];
        echo 
"$cname\n";

y no funciona, no e probado lo que me has comentado porque no lo entiendo bien :S creo algo le falta a mi codigo para que me tome el campo de articulo.
  #8 (permalink)  
Antiguo 24/06/2013, 19:32
(Desactivado)
 
Fecha de Ingreso: julio-2006
Mensajes: 273
Antigüedad: 17 años, 8 meses
Puntos: 5
Respuesta: Consultar datos

Amigo, esa es la diversión de un programador.

intentarlo hasta que funcione, investiga ya te di las herramientas ahora tu debes seguir.

Saludos
  #9 (permalink)  
Antiguo 24/06/2013, 19:43
 
Fecha de Ingreso: abril-2009
Mensajes: 100
Antigüedad: 15 años
Puntos: 0
Respuesta: Consultar datos

De hecho si jajaja, pues el codigo si funciona pero no como deberia :S jajaj seguire buscando

Etiquetas: consultar
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 19:52.