Foros del Web » Programando para Internet » PHP »

Recordar checkbox

Estas en el tema de Recordar checkbox en el foro de PHP en Foros del Web. Hola necesito un poco de ayuda en esto, quiero recordar los checkbox que habían sido seleccionados primeramente, les explico a detalle: Tengo un formulario, en ...
  #1 (permalink)  
Antiguo 30/09/2010, 20:28
 
Fecha de Ingreso: junio-2010
Mensajes: 117
Antigüedad: 13 años, 10 meses
Puntos: 1
Recordar checkbox

Hola

necesito un poco de ayuda en esto, quiero recordar los checkbox que habían sido seleccionados primeramente, les explico a detalle:

Tengo un formulario, en el que enlisto en checkboxes una serie de preferencias, los cuales se muestran vacios la primera vez que el usuario entra, al seleccionar las preferencias deseadas se guardan en la base de datos, ahora, lo que necesito es que cuando el usuario abra de nuevo el formulario se muestre las preferencias que el había seleccionado en los checkboxes pero que ademas se muestren el resto de las preferencias por si desea agrear otra, y no he logrado que al abrir de nuevo el formulario recuerde las antes seleccionadas, les muestro como lo he estado desarrollando:

Hago el query que despliega las preferencias que selecciono el usuario 2

$modpre = "select p.id_preferencia, p.preferencia u.id_usuario, u.usuario from usuarios inner join preferencias on p.id_preferencia=u.id_preferencia where id_usuario=2";

Y para mostrar los checkboxes:

<?
$prefe = "select id_preferencia, preferencia from preferencias";
foreach($prefe as $elemento){
$cheke=' ';
if($elemento['id_preferencia'] == $modpre[0]['id_preferencia']){ $cheke=' checked="checked" ';}
?>
<input type="checkbox" name="preferences[]" id="chgen" value="<?=$elemento['id_preferencia']?>" <?=$cheke?>/><?=$elemento['preferencia']?><?
}?>

Pero con este código marca solamente el primero de todos los que selecciono, y no todas las preferencias del ususario

Alguien sabe como puedo hacer que marque todas las que el usuario había seleccionado?
  #2 (permalink)  
Antiguo 01/10/2010, 02:03
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 14 años, 7 meses
Puntos: 214
Respuesta: Recordar checkbox

Hola
intenta con esto
Código PHP:
Ver original
  1. if($elemento['id_preferencia'] == $modpre[0]) //suponiendo que $modpre es el result

ahora bien, viendo tu consulta haces join entre usuarios y preferencias, y la tabla donde están las preferencias en general también es preferencias

no sería mejor (y normalizado de paso) tener una tabla intermedia entre usuarios y preferencias llamada usuarios_preferencias por ej?

y así el asunto, podrías incluso dentro del while donde dibujas todas las preferencias (o for each en tu caso) hacer consulta a esta tabla intermedia con cada id de preferencia (y filtrando por usuario claro) y si el num_rows es mayor a 0 entonces esa es de las que ya han sido elegidas y por ende deben ir con checked, y si no, pues que la dibuje normal

bueno, espero te sirvan las ideas
saludos
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com
  #3 (permalink)  
Antiguo 01/10/2010, 09:25
 
Fecha de Ingreso: junio-2010
Mensajes: 117
Antigüedad: 13 años, 10 meses
Puntos: 1
Respuesta: Recordar checkbox

Muchas gracias me ha servido tu consejo, cree una tercera tabla de relacion y ya funciona, gracias

Etiquetas: checkbox, recordar
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 22:22.