Ver Mensaje Individual
  #1 (permalink)  
Antiguo 14/02/2013, 07:01
yosoloyo
 
Fecha de Ingreso: mayo-2008
Mensajes: 156
Antigüedad: 16 años, 6 meses
Puntos: 0
Marcar / Desmarcar Todos los Checkbox de un Formulario

Buenas

Tengo un formulario a través del cual con php saco los resultados de una tabla en mysql y con un bucle la voy recorriendo y creando checkbox.

Tengo un checkbox que al marcarlo/desmarcarlo, selecciona/deselecciona todos los checkbox, pero para algo "raro" y es que si empiezo el <form> dejando fuera un input type submit (o button), si hace el script bien su función. Sin embargo, si lo meto dentro del <form>, solo deselecciona los seleccionados pero no lo al contrario.

Como ese submit solo aparece si se da una condición en php, creo que por ahi viene el error, pero a la vez no se como arreglarlo.

Dejo el ejemplo de como lo hace mal y a continuación como lo hace bien:

Así mal: Solo deselecciona

Código Javascript:
Ver original
  1. <script language="javascript" type="text/javascript">
  2.     function selectall(form)  
  3.     {  
  4.      var formulario = eval(formu)  
  5.      for (var i=0, len=formulario.elements.length; i<len ; i++)  
  6.       {  
  7.         if ( formulario.elements[i].type == "checkbox" )  
  8.           formulario.elements[i].checked = formulario.elements[0].checked  
  9.       }  
  10.     }  
  11. </script>
  12. <form action="bbb.php" method="post" name="formu">
  13.         <?php
  14.         if($nomscript!="aaa.php"))
  15.         {
  16.             ?><input type="submit" value="Borrar">
  17.             <?php
  18.         }//fin distinto a nuevo o leer
  19.         ?>
  20. <table class="xxx">
  21. <tr class="xxx">
  22.     <td><input type="checkbox" onclick="selectall(document.forms[0])" /></td>
  23.     <td>Valor</td>
  24. </tr>
  25.  
  26. <?php
  27.  
  28. /*Parte de consulta a la base de datos para sacar la query*/
  29. /*con la query el bucle siguiente que crea el resto de checkbox*/
  30. while ($query)
  31. {
  32.   ?>
  33.   <tr>
  34.                 <td><input name="msjselect[]" type="checkbox" value="<?php echo"$id"; ?>" /></td>
  35.                 <td><?php echo"$id"; ?></td>
  36.   </tr>
  37.   <?php
  38. }
  39. </table>
  40. </form>

Para que si haga la función se arregla o quitando el bucle del principio, es decir quitando que segun el nombre del script.php salga o no salga el submit o dejandolo fuera del form (que viene a ser lo mismo)

Pero claro no se si es posible que estando ese botón según el nombre del script, pues cargue bien javascript

Gracias, saludos