2017-10-21 92 views
1

Cela semble être un problème résolu, mais j'ai fait des recherches à ce sujet pendant des heures, mais toutes les solutions que j'ai essayées n'ont pas fonctionné pour moi. S'il vous plaît aidez-moi, je suis implosive et fatigué ... Je voudrais garder seulement les vérifiés après avoir soumis le formulaire ou si des erreurs se produisent. Voici mon problème.PHP comment garder checkbox array vérifié après avoir soumis

<input name="toppings" type="checkbox" value="pepperoni" id="top1"><label 
for="top1">Pepperoni</label> 
<input name="toppings" type="checkbox" value="bacon" id="top2"><label 
for="top2">Canadian Bacon</label> 
<input name="toppings" type="checkbox" value="sausage" id="top3"><label 
for="top3">Sausage</label> 
<input name="toppings" type="checkbox" value="mushrooms" id="top4"><label 
for="top4">Mushrooms</label> 
<input name="toppings" type="checkbox" value="pineapple" id="top5"><label 
for="top5">Pineapple</label> 
<input name="toppings" type="checkbox" value="peppers" id="top6"><label 
for="top6">Peppers</label> 

Et ce que j'ai essayé

$toppingArr=array(); 
if(!empty($_GET["toppings"])) 
    { 
      foreach($_GET['toppings'] as $tops) 
     { 
      array_push($toppingArr,$tops); 
     } 
    } 
<input name="toppings[]" type="checkbox" value="pepperoni" id="top1" 
      <?= (in_array("pepperoni", $toppingArr)) ? 'checked' : ''; ?>> 
      <label for="top1">Pepperoni</label> 
      <input name="toppings[]" type="checkbox" value="bacon" id="top2" 
      <?= (in_array("bacon", $toppingArr)) ? 'checked' : ''; ?>> 
      <label for="top2">Canadian Bacon</label> 
      <input name="toppings[]" type="checkbox" value="sausage" id="top3"> 
      <?= (in_array("sausage", $toppingArr)) ? 'checked' : ''; ?>> 
      <label for="top3">Sausage</label> 
      <input name="toppings[]" type="checkbox" value="mushrooms" id="top4" 
      <?= (in_array("mushrooms", $toppingArr)) ? 'checked' : ''; ?>> 
      <label for="top4">Mushrooms</label> 
      <input name="toppings[]" type="checkbox" value="pineapple" id="top5" 
      <?= (in_array("pineapple", $toppingArr)) ? 'checked' : ''; ?>> 
      <label for="top5">Pineapple</label> 
      <input name="toppings[]" type="checkbox" value="peppers" id="top6" 
      <?= (in_array("peppers", $toppingArr)) ? 'checked' : ''; ?>> 
      <label for="top6">Peppers</label> 
+0

Ma solution est si case à cocher non vide faire un cookie puis lire cookie si existe checkbox – Pedram

Répondre

-1

Essayez cette

<!DOCTYPE html> 
    <html> 
    <head> 
    <title></title> 
    </head> 
    <body> 
    <?php 
     $toppingArr=array(); 
     if(!empty($_GET["toppings"])) 
     { 
      foreach($_GET['toppings'] as $tops) 
      { 
       array_push($toppingArr,$tops); 
      } 
     } 
    ?> 
    <form> 
     <input name="toppings[]" type="checkbox" value="pepperoni" id="top1" <?php if(in_array('pepperoni', $toppingArr)) echo 'checked'; ?> ><label 
     for="top1">Pepperoni</label> 
     <input name="toppings[]" type="checkbox" value="bacon" id="top2" <?php if(in_array('bacon', $toppingArr)) echo 'checked'; ?>><label 
     for="top2">Canadian Bacon</label> 
     <input name="toppings[]" type="checkbox" value="sausage" id="top3" <?php if(in_array('sausage', $toppingArr)) echo 'checked'; ?>><label 
     for="top3">Sausage</label> 
     <input name="toppings[]" type="checkbox" value="mushrooms" id="top4" <?php if(in_array('mushrooms', $toppingArr)) echo 'checked'; ?>><label 
     for="top4">Mushrooms</label> 
     <input name="toppings[]" type="checkbox" value="pineapple" id="top5" <?php if(in_array('pineapple', $toppingArr)) echo 'checked'; ?>><label 
     for="top5">Pineapple</label> 
     <input name="toppings[]" type="checkbox" value="peppers" id="top6" <?php if(in_array('peppers', $toppingArr)) echo 'checked'; ?>><label 
     for="top6">Peppers</label> 
     <input type='submit' value='Submit' /> 
    </form> 

    </body> 
    </html> 
+0

Merci pour votre intérêt je l'apprécie vraiment. mais .. il ne fonctionne toujours pas et il perd des données après avoir soumis le formulaire – nubies

+0

Il semble que cela fonctionne bien. Je ne sais pas de quoi tu parles. Après soumission, il conserve la valeur que vous avez sélectionnée. – Ashok

0

Il y a un > supplémentaire à id="top3"> empêcher votre code de fonctionner correctement. Il devrait être lu id="top3".

Avec l'erreur corrigée, votre code pourrait fonctionner lorsque vous postez sur la même page. Si vous vous éloignez de la page et que vous revenez, vous utiliserez des variables $_SESSION au lieu de $_GET.