Foros del Web » Programando para Internet » PHP »

Tomando valores de un checkbox

Estas en el tema de Tomando valores de un checkbox en el foro de PHP en Foros del Web. Hola gente de php. Ahora vengo con una duda un poco mas compleja supongo yo. Resulta que estoy haciendo una especia de administrador de imagenes. ...
  #1 (permalink)  
Antiguo 25/09/2009, 22:50
 
Fecha de Ingreso: marzo-2009
Mensajes: 168
Antigüedad: 15 años, 8 meses
Puntos: 1
Tomando valores de un checkbox

Hola gente de php.
Ahora vengo con una duda un poco mas compleja supongo yo.
Resulta que estoy haciendo una especia de administrador de imagenes.
Lo que quiero hacer, es que desde una base de datos, muestro todas las imagenes en un tamaño pequeño, y que el que entre la pagina seleccion ( con un checkbox ) cual de ellas prefiere para poner en un determinado lugar.
Las imagenes que son seleccionadas, tienen en el atributo en una base de datos principal = 1, y las no seleccionadas principal = 0.

Mi problema es que nose como hacer que al seleccionar el checkbox que le re corresponde a cada imagen, las que sean seleccionadas tengan un update en la base de datos. Les dejo lo que tengo hasta ahora, a ver si me pueden guiar para agregarle lo que haga falta.

Esto forma parte de una clase, la primer funcion recorrer todas las imagenes no seleccionadas ( principal = 0 es el query ) . La segunda funcion, intenta asignar en la base de datos el valor 1 a principal a las que selecciono con el checkbox
Código PHP:
    function listarImagenesNoPrincipal(){
for(
$i=0;$row=mysql_fetch_assoc($this->queryImagenesNoPrincipal);$i++){
$urlimagenss$row['urlss'];
$idimagen=$row['idimagen'];
$this->urlss $urlimagenss;
$this->idimagen $idimagen;
echo 
" <input type=checkbox name='principal[]' value='on' align='absbottom'><img src='"$this->urlss ."' border='0' />";
    }}
function 
tomarDatosDelChecked(){
    if (
$_POST['principal'] == 'on'){
        
mysql_query("UPDATE `imagenes` SET `principal` = '1' WHERE idimagen = '$this->idimagen'");
    }

Aca esta el html donde uso las funciones
Código HTML:
 <body>
     
        <form name='adminImagenes' method='post' action='postadminimagenes.php' >
        <?php
        $admpic->listarImagenesPrincipal();
        ?>
        <input name='' type='submit' value='Guardar Cambios' />
             </form>
      <form name='adminImagenes' method='post' action='postadminimagenes.php' >
        <?php
        $admpic->listarImagenesNoPrincipal();
        ?>
        <input name='' type='submit' value='Guardar Cambios' />
             </form>
    </body> 
Y este es el postadminimagenes.php, no hace nada, solo llama a la funcion que intenta actualizar los datos al sql
Código PHP:
<?php
include('adminimagenes.class.php');
$admpic = new adminimagenes();
$admpic->entrarABaseDeDatos();
$admpic->tomarDatosDelChecked();
?>
Bueno, les dejo mi problema, si alguno sabe como se lo puede mejorar que me avise porfavor jeje saludos
Matias!
  #2 (permalink)  
Antiguo 26/09/2009, 04:52
 
Fecha de Ingreso: diciembre-2007
Mensajes: 131
Antigüedad: 16 años, 11 meses
Puntos: 6
Respuesta: Tomando valores de un checkbox

El problema es que los checkbox solo dan valor $_POST si estan ON. Las que estan OFF ni siquiera aparecen en el array $_POST.

Una vez entendido esto, la mejor opcion es setear TODOS los 'principal' a '0':

"UPDATE tabla SET principal = '0'" (en todas las imagenes)

Y luego hacer el loop 1 por 1 las que estan en $_POST y darles el valor principal = 1.
  #3 (permalink)  
Antiguo 26/09/2009, 11:13
 
Fecha de Ingreso: marzo-2009
Mensajes: 168
Antigüedad: 15 años, 8 meses
Puntos: 1
Voy a probarlo, comentare mis resultados gracias!

Hay alguna otra sugerencia para el problema?
No me quedo muy clara la solucion
Perdon,

Llegue a esto, ahora me reconoce si algun check esta seleccionado, pero no se como seguir
Código PHP:
    function listarImagenesNoPrincipal(){
for(
$i=0;$row=mysql_fetch_assoc($this->queryImagenesNoPrincipal);$i++){
$urlimagenss$row['urlss'];
$idimagen=$row['idimagen'];
$loopDelQuery $i;
$this->loopDelQuery $loopDelQuery;
$this->urlss $urlimagenss;
$this->idimagen $idimagen;
echo 
" <input type=checkbox name='principal' value='on' align='absbottom'><img src='"$this->urlss ."' border='0' />";
    }}


function 
tomarDatosDelChecked(){
      
$principal $_POST['principal'];
       if (
$principal == on){
        
//mysql_query("UPDATE `imagenes` SET `principal` = '1' WHERE idimagen = '$this->idimagen'");
        
echo "Hola mundo ";
    }       
    } 
La primer funcion es casi la misma que antes, y la segunda ahora reconoce si hay algun check puesto y si lo hay imprime hola mundo.
Ahora necesito avanzar viendo como detectar cada checkbox activado para modificar la base de datos segun cual este checkeado. Si alguien tiene mas sugerencias, se las agradezo

Última edición por GatorV; 26/09/2009 a las 14:29
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 14:11.