Foros del Web » Programando para Internet » PHP »

Cambiar select por check

Estas en el tema de Cambiar select por check en el foro de PHP en Foros del Web. Hola, a ver si alguien me puede ayudar. Tengo una parte de código que hace una consulta a una base de datos para mostrarme los ...
  #1 (permalink)  
Antiguo 01/04/2009, 08:22
 
Fecha de Ingreso: marzo-2009
Mensajes: 17
Antigüedad: 15 años, 1 mes
Puntos: 0
Cambiar select por check

Hola,
a ver si alguien me puede ayudar. Tengo una parte de código que hace una consulta a una base de datos para mostrarme los alumnos que hay en ella, de manera que al seleccionar uno de los alumnos los datos se envían a otra web.
Lo que necesito es cambiar el select por checks, para evitar que por descuido se seleccione el alumno predeterminado.

Esta es la parte de código a cambiar:
Cita:
<td>
<select name="alumno" id="alumno">
<? $sql = "SELECT id AS id, alumno AS valor FROM alumnos WHERE categoria=2";
$rs = abreRs($sql);
if (mysql_numrows($rs) > 0) {
while ($fila = mysql_fetch_array($rs)){ ?>
<option value="<?=$fila["id"] ?>"<? if ($fila["id"]==$alumno) { echo " selected"; }?>><?=$fila["valor"] ?></option>
<? }
}
cierraRs($rs);
?>
</select>
</td>
Gracias
  #2 (permalink)  
Antiguo 01/04/2009, 08:36
 
Fecha de Ingreso: febrero-2009
Ubicación: cancun!
Mensajes: 898
Antigüedad: 15 años, 2 meses
Puntos: 15
Respuesta: Cambiar select por check

puedes hacer una tabla donde te muestre los check para q asi tengas mas orden y sigues el mismo procedimiento de tu select


mira algo asi

Cita:
if($nfilas1>0)
{

print ("<TABLE border=1>\n");
print("<TR>\n");
print("<HR SIZE=5 WIDTH=75% COLOR=#004C66 ALIGN = CENTER>");
print("<TH>Nombre</TH>\n");
print("<TH>E-mail</TH>\n");
print("<TH>Telefono</TH>\n");
print("<TH>Eliminar</TH>\n");
print("</TR>\n");
echo "DIRECTORIO NOTARIA 13 Y 30";
for($i=0;$i<$nfilas1;$i++)
{

$resultado1=mysql_fetch_array($consulta1);
$nombre=$resultado1['nombre'];
$correo=$resultado1['e-mail'];
$telefono=$resultado1['telefono'];
$id=$resultado1['id_abogado'];

print("<TR>\n");

print("<TD>".$resultado1['nombre']."</TD>\n");

print("<TD>"."<a href=\"javascript:Abrir_ventana('abogadoeditado.ph p?id="
. $id ."&nombre=".$nombre."&correo=".$correo."&telefono= ".$telefono."')\" >".$resultado1['e-mail']."</a>"."</TD>\n");

print("<TD>".$resultado1['telefono']."</TD>\n");
print ("<TD><input type=checkbox name=idborrarnotaria[] value=".$resultado1['id_abogado']."> </TD>\n");
}
print("</TABLE>\n");
}

espero te funcione saludines!!
  #3 (permalink)  
Antiguo 01/04/2009, 09:08
 
Fecha de Ingreso: marzo-2009
Mensajes: 17
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: Cambiar select por check

Gracias harvestmoon,

pero creo que esa solución no me vale, ya que el script tiene que generar una fila (o una lista anidada) con los alumnos que hay en la base de datos y su correspondiente check.

Tal y como está ahora, los muestra en una lista desplegable; lo que necesito es que los muestre en una lista anidada -o usando tablas, aunque no me gusta usarlas, cada resultado en una celda-
  #4 (permalink)  
Antiguo 01/04/2009, 09:13
 
Fecha de Ingreso: febrero-2009
Ubicación: cancun!
Mensajes: 898
Antigüedad: 15 años, 2 meses
Puntos: 15
Respuesta: Cambiar select por check

puedes editar la tabla y manejarla a tu gusto el chiste esta en como cambiar al check

mm pero bueno espero encuentres lo que buscas saludos
__________________
WHERE IS MY BLUE SUNNY SKY??
pd: todos los karmas son bienvenidos :D
  #5 (permalink)  
Antiguo 01/04/2009, 09:25
 
Fecha de Ingreso: marzo-2009
Mensajes: 171
Antigüedad: 15 años, 1 mes
Puntos: 4
Respuesta: Cambiar select por check

Es otra consulta pero aplicalo para el tuyo


for($i=0;$i<$total;$i++){
$line=mysql_fetch_array($result);
$texto='';
if(!empty($line[$columna[2]])){
$cadena=$line[$columna[2]];
}
$checked=($_REQUEST['valorespresentes']==$line[0])?'checked':'';
echo $cadena.'<input class="radio" name="mismo" '.$checked.' type="radio" value="'.$cadena.'" >';
}

En el checkbox el único requisito es poner el mismo name para que sólo se almacena una propiedad.
  #6 (permalink)  
Antiguo 01/04/2009, 10:29
 
Fecha de Ingreso: marzo-2009
Mensajes: 17
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: Cambiar select por check

Disculpa xurxinho, no soy muy buena (bueno, no soy ni buena) con php y no acabo de entender cómo integrarlo. Por cierto, no son checkbox sino botones de selección lo que debo poner.

¿Serías tan amable de detallarme más?. Entiendo que la línea a modificar en mi código sería esta:
Cita:
<option value="<?=$fila["id"] ?>"<? if ($fila["id"]==$alumno) { echo " selected"; }?>><?=$fila["valor"] ?></option>
  #7 (permalink)  
Antiguo 01/04/2009, 11:12
 
Fecha de Ingreso: febrero-2009
Ubicación: cancun!
Mensajes: 898
Antigüedad: 15 años, 2 meses
Puntos: 15
Respuesta: Cambiar select por check

Cita:
Lo que necesito es cambiar el select por checks, para evitar que por descuido se seleccione el alumno predeterminado.
como q por botones habias dicho por check ??
insisto usa una tabla y cambias el tipo de control
__________________
WHERE IS MY BLUE SUNNY SKY??
pd: todos los karmas son bienvenidos :D
  #8 (permalink)  
Antiguo 01/04/2009, 11:33
 
Fecha de Ingreso: marzo-2009
Mensajes: 17
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: Cambiar select por check

Sí, pero me había equivocado, así me explico mejor.

Este código consulta los alumnos que hay en labase de datos y me los muestra en un desplegable, con un alumno ya preseleccionado:

Cita:
<td>
<select name="alumno" id="alumno">
<? $sql = "SELECT id AS id, alumno AS valor FROM alumnos WHERE categoria=2";
$rs = abreRs($sql);
if (mysql_numrows($rs) > 0) {
while ($fila = mysql_fetch_array($rs)){ ?>
<option value="<?=$fila["id"] ?>"<? if ($fila["id"]==$alumno) { echo " selected"; }?>><?=$fila["valor"] ?></option>
<? }
}
cierraRs($rs);
?>
</select>
</td>

Pero lo que necesito es que me muestre esto:
Cita:
O Alumno1
O Alumno2
O Alumno3
Para tener que elegir a uno de los alumnos

Perdonad la molestia
  #9 (permalink)  
Antiguo 01/04/2009, 11:41
 
Fecha de Ingreso: febrero-2009
Ubicación: cancun!
Mensajes: 898
Antigüedad: 15 años, 2 meses
Puntos: 15
Respuesta: Cambiar select por check

entonces deseas un radiobutton por cada alumno

Cita:
<td>
<select name="alumno" id="alumno">
<? $sql = "SELECT id AS id, alumno AS valor FROM alumnos WHERE categoria=2";
$rs = abreRs($sql);
if (mysql_numrows($rs) > 0) {
while ($fila = mysql_fetch_array($rs)){ ?>
<option value="<?=$fila["id"] ?>"<? if ($fila["id"]==$alumno) { echo " selected"; }?>><?=$fila["valor"] ?></option>
<? }
}
cierraRs($rs);
?>
</select>
</td>
solo cambia el tipo de control por un radiobutton


y lo pones en una tabla html te ayudara a acomodarlo como desees
__________________
WHERE IS MY BLUE SUNNY SKY??
pd: todos los karmas son bienvenidos :D
  #10 (permalink)  
Antiguo 01/04/2009, 11:58
 
Fecha de Ingreso: marzo-2009
Mensajes: 17
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: Cambiar select por check

Gracias harvestmoon, ¿sería esto?:
Cita:
<td>
<input type="radio" name="alumno" id="alumno">
<? $sql = "SELECT id AS id, alumno AS valor FROM alumnos WHERE categoria=2";
$rs = abreRs($sql);
if (mysql_numrows($rs) > 0) {
while ($fila = mysql_fetch_array($rs)){ ?>
<option value="<?=$fila["id"] ?>"<? if ($fila["id"]==$alumno) ?>><?=$fila["valor"] ?></option>
<? }
}
cierraRs($rs);
?>
</input>
</td>
Gracias
  #11 (permalink)  
Antiguo 01/04/2009, 12:13
Avatar de argy  
Fecha de Ingreso: octubre-2007
Ubicación: Longitud 75º Latitud 18º Sur
Mensajes: 614
Antigüedad: 16 años, 5 meses
Puntos: 18
Respuesta: Cambiar select por check

Código PHP:
<?php
$sql 
"SELECT id AS id, alumno AS valor FROM alumnos WHERE categoria=2";
$rs abreRs($sql);
if (
mysql_numrows($rs) > 0
{
while (
$fila mysql_fetch_array($rs))
{
$checked=($fila["id"]==$alumno)?' checked="checked"':'';
echo 
'<input type="radio" name="alumn" id="alumno" value="'.$fila["id"].'"'$checked.'/>'.$fila["valor"];
}
}
cierraRs($rs);
?>
RECOMENDABLE: utiliza el tag completo de PHP para evitar problemas por la configuración de tags_short en el php.ini.
__________________
Software libre para un mundo libre.

Eventualmente en el foro.
  #12 (permalink)  
Antiguo 01/04/2009, 12:15
 
Fecha de Ingreso: febrero-2009
Ubicación: cancun!
Mensajes: 898
Antigüedad: 15 años, 2 meses
Puntos: 15
Respuesta: Cambiar select por check

<input type="radio" name="tipo" id="grupo" value="G" />

$sql = "SELECT id AS id, alumno AS valor FROM alumnos WHERE categoria=2";
$rs = abreRs($sql);
if (mysql_numrows($rs) > 0) {
while ($fila = mysql_fetch_array($rs)){

<input type="radio" name="tipo" id="grupo" value="<?php echo($fila['campo'])?>" />

}

que te parece esto o si ya probaste el q tienes estaria bn!
__________________
WHERE IS MY BLUE SUNNY SKY??
pd: todos los karmas son bienvenidos :D
  #13 (permalink)  
Antiguo 01/04/2009, 12:28
 
Fecha de Ingreso: marzo-2009
Mensajes: 17
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: Cambiar select por check

¡¡ Bien !!, besos, besos, besos.... !!!

Funciona perfecto, sólo una cosa más, ¿dónde meto el <br /> para que cada muestre cada alumno en una línea??

Muchas gracias, soys guais

Editado: ya lo descubrí:
Cita:
$fila["valor"]. '<br />';
De nuevo: gracias

Última edición por Invitada; 01/04/2009 a las 12:32 Razón: ya descubrí
  #14 (permalink)  
Antiguo 01/04/2009, 12:33
Avatar de argy  
Fecha de Ingreso: octubre-2007
Ubicación: Longitud 75º Latitud 18º Sur
Mensajes: 614
Antigüedad: 16 años, 5 meses
Puntos: 18
Respuesta: Cambiar select por check

Código PHP:
<?php 
$sql 
"SELECT id AS id, alumno AS valor FROM alumnos WHERE categoria=2"
$rs abreRs($sql); 
if (
mysql_numrows($rs) > 0)  

while (
$fila mysql_fetch_array($rs)) 

$checked=($fila["id"]==$alumno)?' checked="checked"':''
echo 
'<input type="radio" name="alumno" id="alumno" value="'.$fila["id"].'"'$checked.'/>'.$fila["valor"].'<br />'


cierraRs($rs); 
?>
disculpa si mis comentarios son agrios, pero creo que eso es básico de html y deberías de saberlo por CG.

suerte.
__________________
Software libre para un mundo libre.

Eventualmente en el foro.
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 04:07.