Foros del Web » Programando para Internet » Javascript »

Validar CheckBOx PHP + JS

Estas en el tema de Validar CheckBOx PHP + JS en el foro de Javascript en Foros del Web. Hola he posteado este mensaje en el Foro de PHP pero me recomendaron hacerlo aqui... asi que nuevamante espero sea el lugar correcto tengo un ...
  #1 (permalink)  
Antiguo 26/04/2006, 07:50
 
Fecha de Ingreso: noviembre-2004
Ubicación: Montréal - Santa Fe
Mensajes: 140
Antigüedad: 19 años, 5 meses
Puntos: 2
Validar CheckBOx PHP + JS

Hola
he posteado este mensaje en el Foro de PHP pero me recomendaron hacerlo aqui... asi que nuevamante espero sea el lugar correcto

tengo un script PHP que arma un formulario con x cant de check box de esta forma:

Código PHP:
$j=($i%4);
              if(
$j==0){
                  echo 
'<tr></tr>';
              }
              echo 
"<td>";
              echo 
"<table width=\"90\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n";
              echo 
"  <tr>\n";
              echo 
"    <td id='fotos2' class='texto66' height=\"90\" align=\"center\" valign=\"middle\">";
              echo 
"      <input type='checkbox' name='archivos[]' value='$archivo'><br>Eliminar\n";
                 echo 
"    </td>";
              echo 
"    <td id='fotos' width=\"90\" height=\"50\" valign=\"top\"><img src=\"$fotos/ thumbs/tn_$archivo\" class=\"gallery2\"/></td>\n";
                echo 
"</table>";
              echo 
"</td>"
y una funcion borrar tambien en PHP que borra de acuerdo a los Checkbox activos que haya.. son enviados por POST como array de X cant

Código PHP:
if (isset($_POST['archivos'])) {  //Valido para BORRAR LA IMAGEN!!!!!

    
foreach ($_POST['archivos'] as $archivo){ 

//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////

   
$ruta_archivo_original="../ pro_users_fot/" $usuario"/" urldecode($archivo);
   
$ruta_archivo_thumbs="../pro_users_fot/" $usuario"/thumbs/ tn_" urldecode($archivo);    
   
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////   
   
if ((file_exists($ruta_archivo_original)) | | (file_exists($ruta_archivo_thumbs))){ 
       @
unlink($ruta_archivo_original); 
       @
unlink($ruta_archivo_thumbs); 
       
$mensaje '<span style="color: #38ad09" class="panelerror"/ > -  Su foto fue borrada con éxito!</span><BR><BR>';
       
//echo $ruta_archivo_original." --> Borrado<br>"; 
       //$nohayfotos = "<br><br><br><br>";
   
} else { 
       
//echo "<b>".$ruta_archivo_original." --> FALLÓ Borrado</b><br>"; 
       
$mensaje '<span class="panelerror"/ > - Ocurrió un error al borrar - intente nuevamente</span><BR><BR>';
   } 
}  

 echo 
$mensaje
todo eso funciona de maravillas.... el tema es que ahora kiero que si la persona no ha marcado nada me salga un mensaje en JS de que no puede borrar porque no se ha marcado ningun checkbox...
para ellos hize esto

Código HTML:
function eliminar() {
 cantidad=document.forms[0].archivos.length;
 num=0; 
for (i = 0; i < cantidad; i++){ 
if(document.forms[0].archivos[i].checked == true) {
num++;} } 
if (num!=0){ 
alert(" Hay seleecinado"); 
document.forms[0].action='subir_fotos.php?accion=eliminar';
 document.forms[0].submit(); } 
else { 
alert(" ¡ No hay fotos selecionadas !\n No se puede Eliminar nada "); 
exit();
 }
 }
Mi problema es que asi no como esta no anda... si en el formulario en lugar de declarar como arrayr el NAME del CHECK

Código PHP:
echo "      <input type='checkbox' name='archivos[]' value='$archivo'><br>Eliminar\n"
pongo como name solo

echo " <input type='checkbox' name='archivos' value='$archivo'><br>Eliminar\n";

funciona perfecto el JS pero no me borra en PHP y hace cualquier cosa

alguien me puede dar una ayudita??

Sdsl
  #2 (permalink)  
Antiguo 26/04/2006, 08:07
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Hola:

Aunque no me llegué a enterar bien de lo que quieres, supongo que quieres que te sirva en javascript el nombre "archivos[]", y teóricamente no deberías tener problemas en un array de checkboxes, pero debes referenciarlo con corchetes...

cantidad = document.forms[0]["archivos[]"].length;
...
if(document.forms[0]["archivos[]"][i].checked == true) {...

Dime si te sirve...

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #3 (permalink)  
Antiguo 26/04/2006, 08:43
 
Fecha de Ingreso: noviembre-2004
Ubicación: Montréal - Santa Fe
Mensajes: 140
Antigüedad: 19 años, 5 meses
Puntos: 2
Hola amigo.. gracias por tu pronta respuesta...
te cuento que hize lo que me has dicho
pero no funcionada y he notado que
cuando hago un alert(cantidad); de
cantidad = document.forms[0]["archivos[]"].length;
sale como valor no definido....
tenes idea que puede ser?
  #4 (permalink)  
Antiguo 26/04/2006, 08:59
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Hola:

Pues no tengo idea de cuál será el fallo, pero la teoría la demuestro con este código:

Código:
<html>
<head>
<title>1, 2, 3, ¡probando!...</title>
</head>
<body>
<form >
<input type="checkbox" name="nose[]" >
<input type="checkbox" name="nose[]" >
<input type="checkbox" name="nose[]" >
<input type="checkbox" name="nose[]" >
<input type="checkbox" name="nose[]" >
</form>
<span style="cursor: pointer" onclick="alert(document.forms[0]['nose[]'].length)">recuento</span>
</body>
</html>
Puedes probarlo directamente en mi probador de script: http://www.pepemolina.com/probador/ (sólo hay que pegar el código y pinchar en el botón "mostrar resultados"... luego pinchar sobre la palabra recuento para que salte el alert...

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #5 (permalink)  
Antiguo 26/04/2006, 09:17
 
Fecha de Ingreso: noviembre-2004
Ubicación: Montréal - Santa Fe
Mensajes: 140
Antigüedad: 19 años, 5 meses
Puntos: 2
Gracias nuevamente ya encontre donde estaba el problema
originalmente me habias dado
cantidad = document.forms[0]["archivos[]"].length;

y como pusiste en el ultimo ejemplo debe ser
cantidad = document.forms[0]['archivos[]'].length;
con comillas simples...
apartir de ahi me funciono muy bien
MUCHISIMAS GRACIAS!!!!!!!!!!!! :)
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:05.