2009-08-26 11 views
0

J'ai une page web en PHP qui affiche tous les enregistrements dans un tableau. Je veux ajouter des cases à cocher contre toutes les lignes et l'utilisateur peut cocher une case pour cocher les cases dans chaque ligne générée ..cases à cocher dans les lignes générées

comment puis-je faire cela?

+0

Je suis confus quant à votre question est votre question comment générer les cases à cocher avec PHP ou comment les vérifier tous à la fois ou les deux? – espais

+0

J'ai g Enerated les lignes avec les cases à cocher déjà .. mais je dois ajouter un en-tête (cocher tout) checkbox .. J'ai essayé tellement de différentes façons, mais je ne peux pas tout faire fonctionner .. Je ne sais vraiment pas quoi faire plus .. –

Répondre

1

Vous devez utiliser javascript. Ajouter:

<script type="text/javascript"> 
var check=document.getElementById("The id of the checkbox"), 
table=document.getElementById("The id of the table"); 

check.onclick=function(){ 
var ck=table.getElementsByTagName("input"); 
for(i=0;i<ck.length;i++) if(ck[i].type=="checkbox") ck[i].checked=true; 
} 
</script> 
+0

Cela va fonctionner, mais il va vérifier toutes les cases sur un formulaire. S'il y en a d'autres aussi, comparer l'attribut name serait nécessaire. –

+0

Non, vous ne cochez que les cases de la table. Mais je suis d'accord avec vous que l'insertion d'un filtre d'attribut est préférable. – mck89

+0

ne fonctionne toujours pas .. Je suis à court d'idées déjà .. plus, est ce format une violation?pourquoi sont vos cases en dehors de

0

Une façon que j'ai utilisée dans le passé est de définir les identifiants checkbox et de l'utiliser.

Voici un exemple que j'ai écrit qui fonctionne pour moi ...

<?php 
    $num_chkboxes = 3; 
?> 
<html> 
    <head> 
    <script type="text/javascript"> 
     function chk_all() 
     { 
     for (i = 1; i <= <?php echo $num_chkboxes; ?>; i++) 
     { 
      document.getElementById('chk'+i).checked = true; 
     } 
     } 
    </script> 
    </head> 
    <body> 
    check all <input type="checkbox" name="chkall" id="chkall" onclick="chk_all();" /><br /><br /> 

    <table> 
     <tr> 
     <td> 
      chk1<input type="checkbox" name="chk1" id="chk1" /> 
     </td> 
     </tr> 
     <tr> 
     <td> 
      chk2<input type="checkbox" name="chk2" id="chk2" /> 
     </td> 
     </tr> 
     <tr> 
     <td> 
      chk3<input type="checkbox" name="chk3" id="chk3" /> 
     </td> 
     </tr> 
    </table> 
    </body> 
</html> 

Il serait assez simple à partir de là pour ajouter un peu de logique pour en faire un cocher/décocher case ...

0

Je ne peux pas utiliser ce code ...

mon code va comme ceci ..

<table id="top" width=100% border="1" bordercolor="#000000" cellpadding="0" cellspacing="0" style="border-style:solid; border-width:0.5px;"> 
    <form id="myForm" name="myForm" action="" method="post"> 
    <tr style="background-color:#C0C0C0;">   
     <td width="155" align="center"><b>Product Group</b></td> 
     <td width="318" align="center"><b>Group Name</b></td> 
     <td width="310" align="center"><b>PIC</b></td>   
     <td align="center" colspan="2">&nbsp;</td> 
     <td width="21" bordercolor="#000000" style="border-style:solid; border-width:1px;"> 
     <input type="button" onclick="SetAllCheckBoxes('myForm', 'myCheckbox', true);" value="I like them all!"> 
     <input type="checkbox" id="checkall" name="ca_v1_on" value="Check All myCB" onclick="checkAll(1);"/> 
      <input type="checkbox" name="ca_v1_off" value="Uncheck All myCB" onclick="checkAll(0);"/> 
     <!-- ?php echo $form->checkbox('done'); ? --> 
     </td>   
    </tr> 

echo $ form-> end(); foreach ($ prodGroupData $ arr) { ?>
lien ('Edit', array ('contrôleur' ​​=> 'productMasters', 'action' => ' editGroup ','? '=> array (' prodGroupNo '=> $ arr [' ProductGroup '] [' PROD_GROUP_NO ']))); ?> link ('delete', array ('controller' => 'productMasters', 'action' => 'deleteGroup', '?' => Array ('prodGroupNo' => $ arr ['ProductGroup'] [ 'PROD_GROUP_NO']))); ?>

 <input type="checkbox" name="myCheckbox" value="2" id="myCheckbox2"> 
     </td> 
    </tr> 

Pages [< <] [<] [>] [>>] lien ('Supprimer les éléments sélectionnés', array ('contrôleur' ​​=> 'productMasters', 'action' => 'deleteGroup', '?' => array ('prodGroupNo' => $ arr ['ProductGroup'] ['PROD_GROUP_NO']))); ?>

+0

Par curiosité, la forme? – espais

+0

non, ils ne sont pas .. ils sont loin si .. (mon mauvais) qui est la raison pour laquelle je demande si le format est valide ..

case
case
Je suis nouveau dev web et essaie d'apprendre par moi-même .. pls aider .. –

+0

Le formulaire doit aller à l'extérieur de la déclaration de la table, à savoir

...
Ce que je reste ne comprends pas cependant, à partir de votre message ci-dessus, est que vous avez echo $ form-> end(); foreach (..) {...} Êtes-vous sûr que le ne vient pas avant tous vos éléments? – espais

0

pour être honnête, je fais CakePHP ... et im totalement perdu autour ..

ici est une version plus propre:

créer ('ProductGroup', array ('url' => array ('controller' => 'productMasters', 'action' => 'addGroup'))); ?> td.in a, td.in a: visité { couleur: # 0000FF; }
  soumettre ('Recherche', array ('contrôleur' ​​=> 'productMasters', 'action' => 'SearchGroup')); ?> submit ('Add', array ('controller' => 'productMasters', 'action' => 'addGroup')); ?> Groupe de produit Nom de groupe PIC   case ('CheckAll', array ('onClick' => 'CheckAll (1)')); ?> lien ('Edition', array ('controller' => 'productMasters', 'action' => 'editgroup', '?' => Array ('prodGroupNo' => $ arr ['ProductGroup'] ['PROD_GROUP_NO']))); ?> link ('delete', array ('controller' => 'productMasters', 'action' => 'deleteGroup', '?' => Array ('prodGroupNo' => $ arr ['ProductGroup'] [ 'PROD_GROUP_NO']))); ?> case à cocher ('cocher'); ? -> Pages [] [>>] lien ('Supprimer les éléments sélectionnés', array ('contrôleur' ​​=> 'productMasters', '' action'=> 'deleteGroup', » ? '=> array (' prodGroupNo '=> $ arr [' ProductGroup '] [' PROD_GROUP_NO ']))); ?>
end(); >

le javascript j'utilise est

fonction CheckAll (drapeau) { alerte (document.getElementById ('check') de longueur.)?; si (document.ProductGroupAddForm.check.length) { for (var x = 0; x

qui est à un autre fichier (un fichier de mise en page)

...

l'ensemble code est un gâchis de php mixte, html, et cakephp son vraiment m'user dehors mais je ne veux pas abandonner ...