2010-09-06 8 views
0

Situation suivante: J'ai stocké un tableau de cases à cocher avec implode dans un champ de table mysql. Maintenant, afin de mettre à jour les cases à cocher, je veux lire le contenu du champ de table, l'exploser dans ses parties et l'assigner aux cases à cocher respectives. Jusqu'à présent, j'ai réussi à lire et à faire exploser le contenu du champ de la table en différents morceaux, ma difficulté est de savoir comment les attribuer aux cases à cocher respectives.Comment faire exploser un tableau et affecter des morceaux aux champs de cases à cocher respectifs?

Voici le champ de case à cocher:

<tr> 
    <td><input class="field checkbox" type="checkbox" name="appbox[]" value="Automotive" <?php $appbox_checked ?> /><label class="choice">Automotive</label></td> 
    <td><input class="field checkbox" type="checkbox" name="appbox[]" value="Backlights" <?php $appbox_checked ?> /><label class="choice">Backlights</label></td> 
    <td><input class="field checkbox" type="checkbox" name="appbox[]" value="LED lighting" <?php $appbox_checked ?> /><label class="choice">LED lighting</label></td> 
    </tr> 
    <tr> 
    <td><input class="field checkbox" type="checkbox" name="appbox[]" value="IR" <?php $appbox_checked ?> /><label class="choice">IR</label></td> 
    <td><input class="field checkbox" type="checkbox" name="appbox[]" value="Signage/Traffic Lights" <?php $appbox_checked ?> /><label class="choice">Signage/Traffic lights</label></td> 
    <td><input class="field checkbox" type="checkbox" name="appbox[]" value="Mobile Devices" <?php $appbox_checked ?> /><label class="choice">Mobile devices</label></td> 
    </tr> 

et voici le code php:

$storebox = explode(", ", $chunk0); 
    for($i = 0; $i < count($storebox); $i++){ 
    echo "Piece $i = $storebox[$i] <br />"; 
    } 

Le contenu de morceau correspond au champ de valeur de la case à cocher. Donc, ce que je dois est fondamentalement:

si « teneur en morceau » = « valeur de case à cocher » alors <?php $appbox_checked ?> se fera l'écho « checked »

Ou peut-être il y a une solution plus simple. Merci pour votre aide les gars!

Répondre

1

manière la plus simple est d'utiliser in_array() :

L'endroit où vous écrivez <?php $appbox_checked ?>, remplacez-le par (exemple Automotive)

<?php if(in_array('Automotive', $storebox)) echo 'checked="checked"'; ?> 

De même, pour toutes les lignes. par exemple. pour Rétro-éclairage, remplacez-le par:

<?php if(in_array('Backlights', $storebox)) echo 'checked="checked"'; ?> 
+0

Merci! Ça marche pour moi. –

0

Tout ce que vous avez à faire est d'ajouter un attribut à vos éléments d'entrée de case à cocher appelée cochée avec une valeur yes lorsque votre code doit rendre une « cochée » case à cocher:

<input type="checkbox" checked="yes" name="sports" value="soccer" />