Foros del Web » Programando para Internet » PHP »

Busqueda rapida en una pag. web con javascript

Estas en el tema de Busqueda rapida en una pag. web con javascript en el foro de PHP en Foros del Web. Hola chicos, la verdad es que tengo un problema, quiero hacer una busqueda rapida con javascript extrayendo datos de una tabla de una data en ...
  #1 (permalink)  
Antiguo 05/07/2004, 08:18
 
Fecha de Ingreso: junio-2004
Mensajes: 29
Antigüedad: 13 años, 6 meses
Puntos: 0
Exclamación Busqueda rapida en una pag. web con javascript

Hola chicos, la verdad es que tengo un problema, quiero hacer una busqueda rapida con javascript extrayendo datos de una tabla de una data en mysql impresa en un list, los jala, pero los coloca en una sola linea, como hago para colocarlos una debajo del otro, espero que puedan ayudarme, se que si, este es el codigo:

<?
include("fcnConectarse.php");
$link=Conectarse();
$r=mysql_query("select dsc_det from det_cta");
?>
<html>
<head>
<title>Busqueda en lista</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<? echo"
<script language='javascript'>

// Defino el array con los datos
var lista = new Array('";
while ($fila=mysql_fetch_array($r)){
$dsc=$fila["dsc_det"];
printf("$dsc");
}
echo"');"; ?>
function cargarLista() {
// Cargamos el combo
for (x=0;x<lista.length;x++)
document.formulario.miCombo[x] = new Option(lista[x]);
}


function buscar() {

limpiarLista();

// Obtengo el valor del texto
texto = document.formulario.busca.value;

// Creo la expresión regular
expr = new RegExp("^" + texto,"i");

// Recorro la lista. Si la expresión regular es OK
y = 0;

for (x=0;x<lista.length;x++) {
if (expr.test(lista[x])) {
document.formulario.miCombo[y] = new Option(lista[x]);
y++;
}
}


}

function limpiarLista() {
for (x=document.formulario.miCombo.length;x>=0;x--)
document.formulario.miCombo[x] = null;
}

</script>
</head>
<body bgcolor="#FFFFFF" text="#000000" onLoad="cargarLista();">
<form id="formulario" name="formulario">
Buscar: <input type="text" id="busca" name="busca" onKeyUp="buscar();"><br>
Listado: <select id="miCombo" name="miCombo" size=8>
</select>
</form>
</body>
</html>

saludos Ronald
  #2 (permalink)  
Antiguo 05/07/2004, 09:06
Avatar de Kelpie  
Fecha de Ingreso: febrero-2002
Ubicación: NorthSpain
Mensajes: 609
Antigüedad: 15 años, 9 meses
Puntos: 8
A primera vista parece que te faltan las comas que separan los elementos del array...

printf("$dsc");

Esto te estrá sacando algo como

var lista = new Array('elemento1elemento2elemento3');

Yo, en vez de imprimir directamente, guardaría en una variable, de este modo...

$todo.="'$dsc',";

Y al final le quitaría la última coma

$todo=substr($todo,0,length($todo)-1);

Y a imprimir

echo($todo);
__________________
Kelpie
  #3 (permalink)  
Antiguo 05/07/2004, 10:24
 
Fecha de Ingreso: junio-2004
Mensajes: 29
Antigüedad: 13 años, 6 meses
Puntos: 0
Sabes coloque el codigo tal y como me lo dijiste, pero ahora no me muestra ningun objeto en la pagina, este es el codigo, help me
<?
include("fcnConectarse.php");
$link=Conectarse();
$r=mysql_query("select dsc_det from det_cta");
?>
<html>
<head>
<title>Busqueda en lista</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<? echo"
<script language='javascript'>

// Defino el array con los datos
var lista = new Array('";
while ($fila=mysql_fetch_array($r)){
$dsc=$fila["dsc_det"];
$todo.="'$dsc',";
$todo=substr($todo,0,length($todo)-1);
echo($todo);
}
echo"');"; ?>
function cargarLista() {
// Cargamos el combo
for (x=0;x<lista.length;x++)
document.formulario.miCombo[x] = new Option(lista[x]);
}


function buscar() {

limpiarLista();

// Obtengo el valor del texto
texto = document.formulario.busca.value;

// Creo la expresión regular
expr = new RegExp("^" + texto,"i");

// Recorro la lista. Si la expresión regular es OK
y = 0;

for (x=0;x<lista.length;x++) {
if (expr.test(lista[x])) {
document.formulario.miCombo[y] = new Option(lista[x]);
y++;
}
}


}

function limpiarLista() {
for (x=document.formulario.miCombo.length;x>=0;x--)
document.formulario.miCombo[x] = null;
}

</script>
</head>
<body bgcolor="#FFFFFF" text="#000000" onLoad="cargarLista();">
<form id="formulario" name="formulario">
Buscar: <input type="text" id="busca" name="busca" onKeyUp="buscar();"><br>
Listado: <select id="miCombo" name="miCombo" size=8>
</select>
</form>
</body>
</html>
  #4 (permalink)  
Antiguo 07/07/2004, 09:08
Avatar de Kelpie  
Fecha de Ingreso: febrero-2002
Ubicación: NorthSpain
Mensajes: 609
Antigüedad: 15 años, 9 meses
Puntos: 8
Retoca esto en el código
Código PHP:
...
$todo.="'$dsc',";
//Las siguientes dos sobran
//$todo=substr($todo,0,length($todo)-1);
//echo($todo);
}
//Aquí si!!
$todo=substr($todo,0,length($todo)-1);
echo(
$todo);
//Ojo aquí abajo que he quitado una comilla simple...
echo");"?>
... 
__________________
Kelpie
  #5 (permalink)  
Antiguo 07/07/2004, 13:43
 
Fecha de Ingreso: junio-2004
Mensajes: 29
Antigüedad: 13 años, 6 meses
Puntos: 0
Sabes coloqué el codigo como me indicaste, pero no sale nada, no entiendo..., que esta mal?
<?
include("fcnConectarse.php");
$link=Conectarse();
$r=mysql_query("select dsc_det from det_cta");
?>
<html>
<head>
<title>Busqueda en lista</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<? echo"
<script language='javascript'>

// Defino el array con los datos
var lista = new Array('";
while ($fila=mysql_fetch_array($r)){
$dsc=$fila["dsc_det"];
$todo.="'$dsc',";
//$todo=substr($todo,0,length($todo)-1);
//echo($dsc);
}
$todo=substr($todo,0,length($todo)-1);
echo($todo);
echo");"; ?>
......................
  #6 (permalink)  
Antiguo 16/07/2004, 21:37
Avatar de gildus  
Fecha de Ingreso: agosto-2003
Mensajes: 1.495
Antigüedad: 14 años, 4 meses
Puntos: 105
Hola jviera, ,mira a mi si me resulto, .:

Código PHP:
<?
include("includes/database.php"); //te conectas aqui a tu BD
$r=mysql_query("select item_name from products"); //seleccionas tu tablita
$todo '';
while (
$fila=mysql_fetch_array($r))
{    
$dsc=$fila[0];
    
$todo.="'$dsc',";
}
$todo=substr(trim($todo),0,strlen($todo)-1); 
?>
<html>
<head>
<title>Busqueda en lista</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

<script language='javascript'>
// Defino el array con los datos
var lista = new Array(<? echo($todo); ?>);

function cargarLista() 
{    // Cargamos el combo
    for (x=0;x < lista.length;x++)
        document.formulario.miCombo[x] = new Option(lista[x]);
}


function buscar() 
{    limpiarLista();
    // Obtengo el valor del texto
    texto = document.formulario.busca.value;

    // Creo la expresión regular
    expr = new RegExp("^" + texto,"i");

    // Recorro la lista. Si la expresión regular es OK
    y = 0;

    for (x=0;x < lista.length ;x++) 
    {    if (expr.test(lista[x])) 
        {    document.formulario.miCombo[y] = new Option(lista[x]);
            y++;
        }
    }
}

function limpiarLista() 
{    for (x=document.formulario.miCombo.length;x>=0;x--)
        document.formulario.miCombo[x] = null;
}
</script>

</head>

<body bgcolor="#FFFFFF" text="#000000" onLoad="cargarLista()">
<form id="formulario" name="formulario">
Buscar: <input type="text" id="busca" name="busca" onKeyUp="buscar()"><br>
Listado: <select id="miCombo" name="miCombo" size=8>
</select>
</form>
</body>
</html>
Solo que a mi me gusta en otro orden de programacion. .

Saludos, Gildus.

__________________
.: Gildus :.
  #7 (permalink)  
Antiguo 19/07/2004, 08:13
 
Fecha de Ingreso: junio-2004
Mensajes: 29
Antigüedad: 13 años, 6 meses
Puntos: 0
Gracias, sabes usé tu codigo, de esta manera, pero no me resulta nada, no se cual es el error, y es es sgte:

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\xampp\htdocs\Pedidos\prueba_buscar3.php on line 5

<?
include("../pedidos/fcn/fcnConectarse.php"); //te conectas aqui a tu BD
$r=mysql_query("select dsc_det from det_cta"); //seleccionas tu tablita
$todo = '';
while ($fila=mysql_fetch_array($r))
{ $dsc=$fila[“dsc_det”]; // le cambié el cero por el nombre del campo
$todo.="'$dsc',";
}
$todo=substr(trim($todo),0,strlen($todo)-1);
?>
<html>
<head>
<title>Busqueda en lista</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

<script language='javascript'>
// Defino el array con los datos
var lista = new Array(<? echo($todo); ?>);

function cargarLista()
{ // Cargamos el combo
for (x=0;x < lista.length;x++)
document.formulario.miCombo[x] = new Option(lista[x]);
}


function buscar()
{ limpiarLista();
// Obtengo el valor del texto
texto = document.formulario.busca.value;

// Creo la expresión regular
expr = new RegExp("^" + texto,"i");

// Recorro la lista. Si la expresión regular es OK
y = 0;

for (x=0;x < lista.length ;x++)
{ if (expr.test(lista[x]))
{ document.formulario.miCombo[y] = new Option(lista[x]);
y++;
}
}
}

function limpiarLista()
{ for (x=document.formulario.miCombo.length;x>=0;x--)
document.formulario.miCombo[x] = null;
}
</script>

</head>

<body bgcolor="#FFFFFF" text="#000000" onLoad="cargarLista()">
<form id="formulario" name="formulario">
Buscar: <input type="text" id="busca" name="busca" onKeyUp="buscar()"><br>
Listado: <select id="miCombo" name="miCombo" size=8>
</select>
</form>
</body>
</html>


espero que puedan ayudarme

Última edición por jviera; 19/07/2004 a las 08:17
  #8 (permalink)  
Antiguo 21/07/2004, 15:23
Avatar de gildus  
Fecha de Ingreso: agosto-2003
Mensajes: 1.495
Antigüedad: 14 años, 4 meses
Puntos: 105
Hola jviera esto es muy raro, , a mi si me resulta. Revisa tu conexion si la realiza o no, luego haz la misma consulta que haces "select dsc_det from det_cta" y luego imprime cualquier campo echo "$fila[0]".

Este resultado que te sale es que no hubo una conexion a tu base de datos, o no efectuo bien tu consulta:

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\xampp\htdocs\Pedidos\prueba_buscar3.php on line 5

Por seacaso, , revisa tu tabla el nombre de los campos, no deben haber espacios en los nombres de los campos, ; revisa tambien los tipos de campos.


En conclusion, creo que el problema es tu consulta sql, .


Saludos
Gildus.
__________________
.: Gildus :.
  #9 (permalink)  
Antiguo 22/07/2004, 09:09
 
Fecha de Ingreso: junio-2004
Mensajes: 29
Antigüedad: 13 años, 6 meses
Puntos: 0
De acuerdo Gracias por todo

Hello man, gracias por todo, no sabes?, me salio la consulta hoy(Jueves 22), la verdad es que solo faltaba agregarle el link de coneccion, bueno aqui les paso el codigo, espero que les sirva

Código PHP:
<?
include("../pedidos/fcn/fcnConectarse.php");
$link=Conectarse(); //esto fue lo que me faltaba colocar
$r=mysql_query("select dsc_det from det_cta",$link); // y aqui aparte de la ejecucion, le agregué la variable $link
$todo '';
while(
$fila mysql_fetch_array($r))
{    
$dsc=$fila[0];
    
$todo.="'$dsc',";
}
$todo=substr(trim($todo),0,strlen($todo)-1);
?>
......el resto es igual

gracias, saludos....

Última edición por jviera; 22/07/2004 a las 09:11
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 13:01.