Foros del Web » Programando para Internet » PHP »

preseleccionar checkbox

Estas en el tema de preseleccionar checkbox en el foro de PHP en Foros del Web. hola, tengo una forma de aplicarle varias categorias a una noticia , y me funciona muy bien, ahora, lo que quiero es que cuando exista ...
  #1 (permalink)  
Antiguo 12/12/2007, 08:33
Avatar de rogertm
Mod->Cuba
 
Fecha de Ingreso: julio-2005
Ubicación: /home/Cuba/Habana/rogertm/
Mensajes: 2.922
Antigüedad: 18 años, 8 meses
Puntos: 638
preseleccionar checkbox

hola, tengo una forma de aplicarle varias categorias a una noticia, y me funciona muy bien, ahora, lo que quiero es que cuando exista la necesidad de actualizar un registro (noticia), que se me seleccionen automaticamente las categorias a la cual pertenece la noticia, dichas categorias las tengo claro en la base de datos y las listo mediante un checkbox.

alguna idea de como puedo hacerlo, he intentado usar el mismo codigo que tengo para mostrar las categorias de la noticia, pero lo que quiero es que se listen todas, y se marquen solo a las que pertenece la noticia en si, por si hay que cambiar o agregar alguna otra.

saludos y espero por su ayuda
__________________
Friki y Blogger por Cuenta Propia:213
Twenty'em: Theming is Prose
  #2 (permalink)  
Antiguo 12/12/2007, 08:44
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Re: preseleccionar checkbox

Solo es cuestion de pasarle el valor de "checked" a tu checkbox, y vayas comparando con tu base de datos para preseleccionar, algo asi:
Código PHP:
if( $row['categoria'] == $thiscategoria ) {
      echo 
"<input type=\"checkbox\" name=\"idCategorias\" value=\"$thiscategoria\" checked=\"checked\" />";

Saludos.
  #3 (permalink)  
Antiguo 13/12/2007, 07:53
Avatar de rogertm
Mod->Cuba
 
Fecha de Ingreso: julio-2005
Ubicación: /home/Cuba/Habana/rogertm/
Mensajes: 2.922
Antigüedad: 18 años, 8 meses
Puntos: 638
Re: preseleccionar checkbox

buenos dias moderador, anoche me meti en esto y estuve a mm de lograrlo, pero no , con el codigo que tengo me chequea solo uno de los valores que deben ser marcados, por ejemplo, si una noticia tiene 3 categorias, me marca el ID de mayor valor, asi si son 2 o 4, si es una sola, si lo hace bien, pero para que me entiendas, yo quiero que me muestre todas las categorias y me marque solo a las que pertenece la noticia, use el mismo codigo que pongo en el link mas arriba:
Código PHP:
<?php
// BY OKRAM :P
// Obtenemos las categorias de la noticia
$sqlQuerySubcategorias mysql_query("SELECT noticia_ID, noticiaSubcategoriaID FROM noticias WHERE noticia_ID = '{$row['noticia_ID']}'"$db_link) or die(mysql_error());
$rowSubcategorias mysql_fetch_assoc($sqlQuerySubcategorias);

// Creamos un array que contenga los datos necesarios SOLO para las 
// categorias que vamos a usar
$cats mysql_query("SELECT subcategoria_ID, subcategoriaSubcategoria FROM subcategorias WHERE subcategoria_ID IN ($rowSubcategorias[noticiaSubcategoriaID])"$db_link) or die(mysql_error());
$catlist = array();
while(
$tmpcats mysql_fetch_object($cats)) {
    
$catlist[$tmpcats->subcategoria_ID] = $tmpcats->subcategoriaSubcategoria;


$subCategoria explode(","$rowSubcategorias['noticiaSubcategoriaID']);
 
foreach(
$subCategoria as $subcatID){
    
// En vez de consultar nuevamente a la BD, buscamos en nuestro array
    
$idSubcat $subcatID;
    
// echo $idSubcat."<br>";
}                  
// Todas las Subcategorias
$sqlTodasCats mysql_query("SELECT subcategoria_ID, subcategoriaSubcategoria FROM subcategorias",
    
$db_link) or die(mysql_error());
while(
$rowTodasCats mysql_fetch_array($sqlTodasCats)) {
    
// aqui es donde comparo e imprimo la lista de las categorias 
    
if($rowTodasCats['subcategoria_ID'] == $idSubcat) {
        echo 
"<input type='checkbox' name='noticiaSubcategoriaID[]' value='$rowTodasCats[subcategoria_ID]' checked='checked'> - $rowTodasCats[subcategoriaSubcategoria]<br>";
    } else {
        echo 
"<input type='checkbox' name='noticiaSubcategoriaID[]' value='$rowTodasCats[subcategoria_ID]'> - $rowTodasCats[subcategoriaSubcategoria]<br>";
    }
}
?>
donde es que me estoy equivocando?

saludos y gracias mil
__________________
Friki y Blogger por Cuenta Propia:213
Twenty'em: Theming is Prose
  #4 (permalink)  
Antiguo 13/12/2007, 09:51
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Re: preseleccionar checkbox

El problema es que en tu foreach estas asignando a una variable, necesitarías en dado caso almacenarlo en un arreglo y comparar con la función in_array.

Saludos.
  #5 (permalink)  
Antiguo 13/12/2007, 10:32
Avatar de rogertm
Mod->Cuba
 
Fecha de Ingreso: julio-2005
Ubicación: /home/Cuba/Habana/rogertm/
Mensajes: 2.922
Antigüedad: 18 años, 8 meses
Puntos: 638
Re: preseleccionar checkbox

quedaria asi?
Código PHP:
while($rowTodasCats mysql_fetch_array($sqlTodasCats)) {
    
// aqui es donde comparo e imprimo la lista de las categorias 
    
if(in_array("$idSubcat"$rowTodasCats['subcategoria_ID'])) {
        echo 
"<input type='checkbox' name='noticiaSubcategoriaID[]' value='$rowTodasCats[subcategoria_ID]' checked='checked'> - $rowTodasCats[subcategoriaSubcategoria]<br>";
    } else {
        echo 
"<input type='checkbox' name='noticiaSubcategoriaID[]' value='$rowTodasCats[subcategoria_ID]'> - $rowTodasCats[subcategoriaSubcategoria]<br>";
    }

es que tengo que probar esta noche en casa
__________________
Friki y Blogger por Cuenta Propia:213
Twenty'em: Theming is Prose
  #6 (permalink)  
Antiguo 13/12/2007, 10:37
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Re: preseleccionar checkbox

Mas bien:
Código PHP:
if(in_array($subCategoria$rowTodasCats['subcategoria_ID'])) { 
Saludos.
  #7 (permalink)  
Antiguo 13/12/2007, 10:47
Avatar de rogertm
Mod->Cuba
 
Fecha de Ingreso: julio-2005
Ubicación: /home/Cuba/Habana/rogertm/
Mensajes: 2.922
Antigüedad: 18 años, 8 meses
Puntos: 638
Re: preseleccionar checkbox

entonces el foreach me sobra?
__________________
Friki y Blogger por Cuenta Propia:213
Twenty'em: Theming is Prose
  #8 (permalink)  
Antiguo 13/12/2007, 10:48
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Re: preseleccionar checkbox

Si,

Saludos.
  #9 (permalink)  
Antiguo 14/12/2007, 08:01
Avatar de rogertm
Mod->Cuba
 
Fecha de Ingreso: julio-2005
Ubicación: /home/Cuba/Habana/rogertm/
Mensajes: 2.922
Antigüedad: 18 años, 8 meses
Puntos: 638
Re: preseleccionar checkbox

hola moderador, era buscar la aguja en el pajar, no el pajar en la aguja , me quedo asi:
Código PHP:
if(in_array($rowTodasCats['subcategoria_ID'], $subCategoria)) { 
como siempre, gracias por la ayuda
__________________
Friki y Blogger por Cuenta Propia:213
Twenty'em: Theming is Prose
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 23:51.