Foros del Web » Programando para Internet » PHP »

Pequeño problema...

Estas en el tema de Pequeño problema... en el foro de PHP en Foros del Web. Hola a todos!!! Tengo un pequeño problema, que la verdad es necesario que lo pueda solucionar, es el siguiente: Tengo un list box que trae ...
  #1 (permalink)  
Antiguo 04/03/2004, 22:10
 
Fecha de Ingreso: octubre-2003
Mensajes: 134
Antigüedad: 20 años, 6 meses
Puntos: 0
Pequeño problema...

Hola a todos!!!

Tengo un pequeño problema, que la verdad es necesario que lo pueda solucionar, es el siguiente:

Tengo un list box que trae valores desde una base de datos (ok), lo que quiero es que cuando cargue la página me deje seleccionado (foco) el primer valor de la lista.

Lo anterior me funciona cuando no le pongo tamaño a la lista a generar, pero cuando le pongo size=10 (por ejemplo) no me deja el foco en la primera posición.

ejemplo:


<BODY onLoad="javascript:document.f1.select.focus() ">

<FORM action="pagina.php" method="post" name="f1">
<SELECT name="select" >

<?
Conexión a BD y traigo los datos a la lista, ok
?>

Entonces si la lista es de 100 datos me trae en pantalla una lista de tamaño 1 con el foco en este (pero para ver los otros 99 valores debo recorrer la lista y es justamente lo que no necesito)

Ahora si pongo:

<SELECT name="select" size=10>
Me trae en pantalla la lista con tamaño 10 pero el foco no queda en el primer valor de la lista.

Alguien me puede ayudar????

Por favor!!!!

saludos
  #2 (permalink)  
Antiguo 04/03/2004, 23:25
 
Fecha de Ingreso: septiembre-2003
Mensajes: 248
Antigüedad: 20 años, 7 meses
Puntos: 2
Hola, puedes hacer un contador iniciandolo antes del bucle (mysql_fetch_array) supongamos $k=0;
luego dentro del bucle preguntar:

<option value=".." <?php if ($k==0) echo 'selected'; ?>>
$k+;

así te seleccionará solo el primer elemento, quizá hayan otras maneras, pero es algo q se me ocurre,
espero te sirva
suerte y saludos
__________________
Jose A
  #3 (permalink)  
Antiguo 05/03/2004, 21:55
 
Fecha de Ingreso: octubre-2003
Mensajes: 134
Antigüedad: 20 años, 6 meses
Puntos: 0
Gracias, pero...

Hola a todos.

Lo primero es agradecer a j_aspillaga por responder, pero lamentablemente no funciona.
La verdad no se que hacer, pues según lo que tenía entendido, con la función JavaScript señalada bastaba para dejar el foco en el campo !!!, pero por lo visto no es así.

Espero alguien me pueda ayudar!!!


Yuki27
  #4 (permalink)  
Antiguo 05/03/2004, 22:20
Avatar de sism82  
Fecha de Ingreso: octubre-2003
Ubicación: Guadalajara
Mensajes: 865
Antigüedad: 20 años, 6 meses
Puntos: 1
creo que no te entiendo del todo, una cosa es dejar el foco en el campo, y otra que un elemento de ese campo este seleccionado. Tu puedes tener el foco en el campo SELECT pero ningún elemento formalmente seleccionado. Trata de ser un poco mas explicita y tratare de ayudarte en este momento, apura por que ya casi me voy a dormir :P
  #5 (permalink)  
Antiguo 05/03/2004, 23:20
 
Fecha de Ingreso: octubre-2003
Mensajes: 134
Antigüedad: 20 años, 6 meses
Puntos: 0
Explicando...

Hola sism82!

Gracias por tú tiempo. ahora te explico:

Tengo un listbox que trae los valores desde una BD de acuerdo a un apellido, esto es si a la pagina2.php llega pérez la lista tendrá sólo aquellos alumnos con apellido pérez (ok). por tanto necesito que cuando cargo la página pagina2.php traiga todos los pérez y que el foco quede en el primer pérez de la lista (osea que quede pintado de azul).

El problema está que cuando le digo que la lista sea de tamaño 4 (por ejemplo, osea que me traiga todos los pérez pero que en pantalla aparezca sólo 4) No me deja "pintado de azul" el primer pérez; en cambio cuando pongo sin size, en pantalla muestra un solo valor de la lista y ahí lo deja "pintado". (y lo que necesito es poner tamaño a la lista y que quede el primer valor "pintado")

Ejemplo

*** llega pérez a pagina2.php

<SELECT name="select" size=4>

<? Consulta a BD y trae los datos ?> -- ok

entonces el listbox mostrado en pantalla es:

Pérez Cárcamo Andrea Carolina
Pérez Cepeda Juan Alberto
Pérez Sanhueza André Antonio
Pérez Sepúlveda Claudia Alejandra

(los otros pérez, si es que hay más, los veo recorriendo la lista).

El problema es que el primer pérez No queda "pintado de azul" (a lo que yo llamo dejar el foco en la lista)

En cambio cuando pongo:

<SELECT name="select">

<? Consulta a BD y trae los datos ?> -- ok

entonces el listbox mostrado en pantalla es:

Pérez Cárcamo Andrea Carolina

---> este queda "pintado", pero para ver los otros pérez debo obligadamente recorrer la lista


Espero haberme explicado mejor, y así me puedas o puedan ayudar.

Gracias

yuki27
  #6 (permalink)  
Antiguo 06/03/2004, 01:35
Avatar de lado2mx
Colaborador
 
Fecha de Ingreso: agosto-2001
Ubicación: Veracruz
Mensajes: 3.720
Antigüedad: 22 años, 8 meses
Puntos: 9
el caso que te dió j_aspillaga es muy bueno, y es lo mas exacto, solo que de plano si tienes muchos problemas mejor muestra el código de tu consulta, y en donde se muestra el error, y desde ahí podamos solucionártelo.

Lo mas seguro es que no sepas de PHP al 100%, o de la síntaxis debida q tienes q poner al momento de mostrar tu página.
  #7 (permalink)  
Antiguo 06/03/2004, 15:54
 
Fecha de Ingreso: octubre-2003
Mensajes: 134
Antigüedad: 20 años, 6 meses
Puntos: 0
Aquí va el código...

Hola a todos, aquí les pongo el pequeño código para que me puedan ayudar por favor.

A esta página llega la varible (txt_paterno2) que tiene el apellido con el cual se traen datos de la BD.


<BODY onLoad="javascript:document.f1.select.focus()">

<?
echo "variable\$txt_paterno2:$txt_paterno2 <br>\n";
?>


<FORM action="paginafinal.php" method="post" name="f1">
<SELECT name="select">
<?php
$compara=$select;
$MySqlHostname = "xx";
$MySqlUsername = "xxx";
$MySqlPassword = "xxxx";
$MySqlDatabase = "xxxxx";
$dblink=MYSQL_CONNECT($MySqlHostname, $MySqlUsername, $MySqlPassword);
@mysql_select_db("$MySqlDatabase");
$sql = "SELECT CLAVE, RUT, DV, PATERNO, MATERNO, NOMBRES FROM ALUMNOS ORDER BY CLAVE";
$query = @mysql_query($sql, $dblink);
$okPaterno=0;
while ($row = mysql_fetch_array($query))
{
$CLAVE = $row['CLAVE'];
$PATERNO = $row['PATERNO'];
$MATERNO = $row['MATERNO'];
$NOMBRES = $row['NOMBRES'];
$RUT = $row['RUT'];
$DV = $row['DV'];

if (strcasecmp($txt_paterno2,$PATERNO)==0) {
$okPaterno=$okPaterno+1;

printf("<OPTION value=\"$CORRELATIVO\", \"$PATERNO\", \"$MATERNO\", \"$NOMBRES\", \"$RUT\", \"$DV\">$CORRELATIVO $PATERNO $MATERNO $NOMBRES $RUT $DV </option>");
}
}

?>

</select>
<? echo ($select); ?>


<input type="submit" name=boton_ingresar value="Seleccionar Datos">

<?

if ($okPaterno==0) {
echo "Apellido NO está en Base de Datos";
}
?>

</form>
</body>
</html>

Entonces si pongo <SELECT name="select"> trae en pantalla sólo el primer pérez y con el foco en el,

pero si pongo <SELECT name="select" size=4> trae en pantalla 4 pérez, pero no deja el foco en el primer registro.



Obs: hago <? echo ($select); ?> pues envío ese valor a otra página (paginafinal.php).

Espero me puedan ayudar, pues he probado varios códigos, incluso los señalados en este foro, pero no me resulta.

Yuki27
  #8 (permalink)  
Antiguo 06/03/2004, 16:36
Avatar de lado2mx
Colaborador
 
Fecha de Ingreso: agosto-2001
Ubicación: Veracruz
Mensajes: 3.720
Antigüedad: 22 años, 8 meses
Puntos: 9
Código PHP:
<FORM action="paginafinal.php" method="post" name="f1"> 
<SELECT name="select">
<?php 
$compara
=$select
$MySqlHostname "xx"
$MySqlUsername "xxx"
$MySqlPassword "xxxx"
$MySqlDatabase "xxxxx"
$dblink=MYSQL_CONNECT($MySqlHostname$MySqlUsername$MySqlPassword); 
@
mysql_select_db("$MySqlDatabase"); 
$sql "SELECT CLAVE, RUT, DV, PATERNO, MATERNO, NOMBRES FROM ALUMNOS ORDER BY CLAVE";
$query = @mysql_query($sql$dblink);
$okPaterno=0;
while (
$row mysql_fetch_array($query)) 

$CLAVE $row['CLAVE']; 
$PATERNO $row['PATERNO']; 
$MATERNO $row['MATERNO']; 
$NOMBRES $row['NOMBRES']; 
$RUT $row['RUT']; 
$DV $row['DV']; 

if (
strcasecmp($txt_paterno2,$PATERNO)==0) {
$okPaterno=$okPaterno+1;

echo 
"<OPTION value=\"$CORRELATIVO\", \"$PATERNO\", \"$MATERNO\", \"$NOMBRES\", \"$RUT\", \"$DV\">";
if (
$okParterno==1) { echo "selected";}
 ; echo 
">
$CORRELATIVO $PATERNO $MATERNO $NOMBRES $RUT $DV </option>"
;
}
}

?>

</select>
Está muy confuso tu código, pero es señal que necesitas urgentemente aprender mas de PHP, saludos.

Última edición por lado2mx; 06/03/2004 a las 16:37
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 06:56.