Foros del Web » Programando para Internet » PHP »

Validar check

Estas en el tema de Validar check en el foro de PHP en Foros del Web. Hola que tal , soy totalmente nuevo en php y ya me he topado con mi primer problema irresoluble por mi mismo,en fin. Para eliminar ...
  #1 (permalink)  
Antiguo 22/12/2005, 06:34
 
Fecha de Ingreso: junio-2002
Mensajes: 93
Antigüedad: 21 años, 10 meses
Puntos: 0
Validar check

Hola que tal , soy totalmente nuevo en php y ya me he topado con mi primer problema irresoluble por mi mismo,en fin.

Para eliminar varios registros simultaneamente creo un array de check y guardo en el value el id de la base de datos
el codigo es:
Código PHP:
<?php while($row=mysql_fetch_array($rs)){?>
    <tr> 
        <td height="20"><input type="checkbox" name="<?php echo"boton[]"?>" value="<?php echo $row['Id_usuario']?>"></td>
        <td height="20" align="left"><?php echo $row['usuario']?></td>
    </tr>
    <?php }?>
Para borrar los marcados no tengo ningún problema y lo hago así:
Código PHP:
foreach ($_POST['boton'] as $a){ 
           
$sSQL="DELETE FROM tabla WHERE campo IN('".$a."')";
        
mysql_db_query("base",$sSQL);

Todo funciona genial pero no puedo conseguir comprobar si los check (almenos 1) están pulsados.Alguien puede indicar como?
Gracias de antemano
Un saludo
Iñaki.
  #2 (permalink)  
Antiguo 22/12/2005, 06:41
Avatar de Quest  
Fecha de Ingreso: diciembre-2002
Ubicación: Santiago
Mensajes: 129
Antigüedad: 21 años, 4 meses
Puntos: 2
...

Código PHP:
<?php while($row=mysql_fetch_array($rs)){?>
    <tr> 
        <td height="20"><input type="checkbox" name="boton[]" value="<?=$row['Id_usuario']?>"></td>
        <td height="20" align="left"><?=$row['usuario']?></td>
    </tr>
<?php }?>
Código PHP:
if ($empty($_POST['boton']) && count($_POST['boton']) {
$in implode(","$_POST['boton']);
$sSQL="DELETE FROM tabla WHERE campo IN($in)";
mysql_db_query("base",$sSQL); 


saludos.
__________________
http://victorsanmartin.com
Web Developer
http://www.guiasitios.cl

Última edición por Quest; 22/12/2005 a las 07:08
  #3 (permalink)  
Antiguo 22/12/2005, 07:00
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
El nombre del checkbox .. del estilo "nombre[]" no es una variable de PHP ni algo que tenga que salir de PHP como lo haces .. simplemente usa:
Código PHP:
<td height="20"><input type="checkbox" name="boton[]" value="<?php echo $row['Id_usuario']?>"></td>
El borrado que haces usando IN() de SQL y un bucle si bien funciona . .no es correcto .. fijate en estos ejemplos de esta FAQ:

http://www.forosdelweb.com/showthrea...710#post518710

Para saber si tienes algún checkbox seleccionado desde PHP . .debes conocer que -sólo- a tu script PHP pasan los valores de los checbox seleccionados .. que pasan como un "array" (por eso usas un foreach() para recorrerlo) así que puedes usar funciones de array como count() para contar sus elementos y .. si no tienes mas de 1 (creo que si hay sólo un checkbox marcado no devuelve un array sino una variable simple .. en ese caso puedes combinar el uso de is_array() con todo esto) ... ahí validas.

Un saludo,
  #4 (permalink)  
Antiguo 22/12/2005, 07:01
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Comentario:

Quest

Código PHP:
foreach ($_POST['boton'] as $a){  
if (
$coma) { $in $a.","; } else { $in $a$coma 1; } 

Eso lo hace la función implode() (www.php.net/implode) simplemente.

Un saludo,

Última edición por Cluster; 22/12/2005 a las 07:11
  #5 (permalink)  
Antiguo 22/12/2005, 07:07
Avatar de Quest  
Fecha de Ingreso: diciembre-2002
Ubicación: Santiago
Mensajes: 129
Antigüedad: 21 años, 4 meses
Puntos: 2
teni razon... se me fue...
__________________
http://victorsanmartin.com
Web Developer
http://www.guiasitios.cl
  #6 (permalink)  
Antiguo 22/12/2005, 07:39
 
Fecha de Ingreso: junio-2002
Mensajes: 93
Antigüedad: 21 años, 10 meses
Puntos: 0
Muchas gracias por sus respuestas.
He mejorado el codigo con sus recomendaciones.
Pero aún tengo el mismo problema, aunque ahora trataré de explicarme mejor.
Me gustaría comprobar con Javascript si hay algún check pulsado.
Pero como con php me obliga a llamar al checkbox boton[] no puedo usar el codigo que uso para validar si alguno está pulsado:
Código PHP:
function borrando()
{
var 
longitud,i,pulsado;
longitud document.formulario.boton.length;
pulsado=false;
if (
longitud==null
    {
        if(
document.formulario.boton.checked)    pulsado true;
    }
else
    {    
        for (
i=0;i<longitud;i++)
            {
                if (
document.formulario.boton[i].checked)
                    {
                        
pulsado=true;
                        break;
                    }
            }
    }
if (!
pulsado
    {
        
alert("Seleccione el o los clientes que desea eliminar");
        return 
false;    
    }

Si llamo al checkbox boton valido correctamente con JS pero no lo puedo(no se) recogerlo con php y por el contrario
si llamo al checkbox boton[] lo recojo correctamente con PHP pero no puedo(no se) validarlo con JS.
Espero haberme explicado mas concretamente.
Un saludo
kaki
  #7 (permalink)  
Antiguo 22/12/2005, 07:55
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
Me gustaría comprobar con Javascript si hay algún check pulsado.
En ese caso .. consulta en el foro de Javascript!!!!. El tratamiento de esos "nombre[]" se hace vía javascript por otras técnicas .. accediendo al elemento por "id" creo (no estoy seguro, confirmalo en dicho foro).

Un saludo,
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 18:50.