2010-10-07 4 views
1

J'ai 1 page qui affiche un formulaire avec diverses listes déroulantes qui sont remplies dynamiquement.PHP: Conserver les champs déroulants dans la nouvelle page

Snippit

<td valign="top"> 
        <select name="status"> 
         <option></option> 

         <?php 
          foreach($statuslst as $status){ 
           echo '<option value=' . $status[0] . '>' . $status[1] . '</option>'; 
          } 
         ?> 
        </select> 
       </td> 

J'ai une 2ème page qui affiche aussi cette forme, mais aussi les résultats de la forme. le premier formulaire est affiché au 2e et le 2e est affiché sur lui-même.

Je veux que les articles choisis dans le premier formulaire soient sélectionnés lorsqu'ils sont affichés dans le deuxième formulaire.

Quelqu'un peut-il me diriger dans la bonne direction ici?

Merci,

Jonesy

Répondre

1

pris votre forme est de type GET, vous pourriez faire quelque chose comme ça sur la seconde page:

<?php 
    foreach($statuslst as $status){ 
    $var = ''; 
    if($_GET['status'] == $status['0']){$var = ' selected="selected"';} 
    echo '<option value="' . $status[0] .'"'. $var .'>' . $status[1] . '</option>'; 
    } 
?> 
+0

merci beaucoup! juste ce dont j'avais besoin! – iamjonesy

+0

Vous êtes les bienvenus. N'oubliez pas de valider et de vérifier vos variables. – methode

0
<?php 
     foreach($statuslst as $status){ 
      echo '<option value="'.$status[0].'"'.(in_array($status[0],$_POST['status']) ? ' selected="selected"' : '').'>'. $status[1].'</option>'; 
     } 
?> 

Je pense que cela devrait fonctionner.

0

Vous devez ajouter l'attribut sélectionné aux balises d'option sur le formulaire 2. Jetez un oeil à selected option

+0

mais comment définir quelle option est sélectionnée? – iamjonesy

+0

@jonesy quelques bons exemples ont été postés –

1

Ne pas oublié de vérifier la variable EXISTE utilisant

isset($_GET['status']) 

ou

isset($_GET['status']) 

en fonction de ce que vous utilisez, car il est pas idéal pour vérifier la variable sans le faire en premier.

par ex. if (isset ($ _ GET ['status')) & & $ _GET ['status'] == $ statut [0] par exemple

+0

merci pour le pourboire! – iamjonesy

+0

pas de problèmes, sinon vous pouvez obtenir un avertissement dans vos journaux pour vérifier une variable vide – easyjo

Questions connexes