J'ai et la valeur dans ma base de données. C'est l'appel type

J'ai 2 cases à cocher dans mon formulaire html.

<input name="barea[]" type="checkbox" id="barea[]" value="1" {$cbvar}/>Normal 
<input name="barea[]" type="checkbox" value="2" id="barea[]" {$cbvar}/>Gold

Et je stocke les données sous forme de code ci-dessous:

$checkboxvar = implode(',', $_GET['barea']);

Donc, mes données de table comme:

+-------+-----------+
| ID    | type      |
+-------+-----------+
| 1     | 1         |
| 2     | 1,2       |
| 3     | 2         |
| 4     | 1,2       |
| 5     | 1,2       |
| 6     | 1         |
+-------------------+

Lorsque l'utilisateur modifie ces données, comment checked cocher la case lorsque barea[] value existe in_array dans le mysql_query?

J'essaye le codage ci-dessous, dans mon fichier php:

$checkbox = explode(',',$row['type']);
if (in_array($_GET['barea'],$checkbox)){
    $cbvar = "checked=\"checked\"";
}else{
    $cbvar = '';
}

Dans mon html

<input name="barea[]" type="checkbox" id="barea[]" value="1" {$cbvar}/>Normal 
<input name="barea[]" type="checkbox" value="2" id="barea[]" {$cbvar}/>Gold

Mais cela ne peut pas fonctionner, je pense que le problème vient peut-être de if (in_array($_GET['barea'],$checkbox)){.

Alors comment améliorer mon codage, ou toute autre bonne suggestion de codage? Je vous remercie.

3
Swee Hong 28 déc. 2015 à 13:35

2 réponses

Meilleure réponse

=> Essayez ce code, j'espère qu'il est utile.

// page html ..

<label>Select State</label><br>
<?php 
$allgroup = mysql_query("SELECT * FROM  state");
$flag=false;
while($state_list = mysql_fetch_array($allgroup))
{
   $parr=explode(',',$er['state_id']);
   $size = sizeof($parr);
   for($i=0;$i<$size;$i++) { 
     if($parr[$i]==$state_list['id']) {                              
        $flag=true;
     } 
   }    

  if($flag==true) {
    ?>
    <input  type='checkbox' name='state[]' style="margin-left:5px;" value="<?php echo $state_list['id']; ?>" checked  > <?php echo $state_list['name']; ?> <br>
    <?php
    $flag=false;
  } else { 
    ?>
    <input  type='checkbox' name='state[]' style="margin-left:5px;" value="<?php echo $state_list['id']; ?>"     > <?php echo $state_list['name']; ?> <br>
    <?php
    }
}
?>

// code php ..

<?php
$states="";
$i=0;
foreach( $_POST['state'] as $selected) {
   echo sizeof($_POST['state']);
   if($i==sizeof($_POST['state'])-1) {
       $states = $states.$selected;
   } else {
     $states = $states.$selected.",";
   }
   $i++;
}
?>
3
NimeSh Patel 27 févr. 2019 à 12:32

N'oubliez pas de nettoyer $_POST, c'est une bonne pratique de codage de ne pas accéder directement à la superglobale POST.

+1 pour initialiser vos variables avant de les utiliser :)

0
mvdgun 28 déc. 2015 à 11:54