2009-12-27 6 views
0

Je sais comment 'se souvenir' de certaines valeurs de formulaire lors de la soumission du formulaire à lui-même, dans ce cas en raison d'une fonction de téléchargement d'image qui nécessite que le formulaire soit soumis à lui-même. Je le veux simplement pour que si l'utilisateur a rempli tous les champs et télécharge ensuite une image, le formulaire ne sera pas réinitialisé (effacé).Valeur de liste déroulante du formulaire 'Mémoriser' lors de la soumission à SELF?

J'ai résolu ce dans des domaines réguliers et des cases à cocher comme celui-ci:

<input type="text" name="headline" id="headline" value="<?php echo @$_POST['headline'];?>"> 

Mais comment puis-je faire avec des listes déroulantes? ou des boutons radio? Il n'y a pas d'option de valeur dans une liste 'SELECT', même si j'ai essayé d'écrire de la valeur de toute façon dans l'instruction SELECT. N'a pas fonctionné! Alors, comment puis-je définir la valeur SELECT (liste déroulante) avec PHP (OR JAVASCRIPT)?

Si vous avez besoin de plus d'informations, faites-le moi savoir, merci!

+1

de côté: vous avez un trou de sécurité pour les sites inter-sites. Souvenez-vous toujours de 'htmlspecialchars()' tout texte que vous répétez en HTML. – bobince

Répondre

2

Pour les sélections, vous devez comparer chaque option à votre valeur affichée et la gérer individuellement. Imprimez simplement vos options dans une boucle et testez chaque valeur par rapport à la valeur précédemment affichée. S'il s'agit d'une opération, ajoutez selected aux attributs de cette option particulière.

$color = $_POST["colors"]; 
$colors = array("red","green","blue"); 

<select name="colors"> 
<?php foreach ($colors as $option) { ?> 
    <option<?php print ($option == $color) ? " selected" : ""; ?>> 
    <?php print $option; ?> 
    </option> 
<?php } ?> 
</select> 
1

En fait, a constaté qu'il est possible de régler la selectedIndex avec javascript ...

donc je pourrais mettre le selectedIndex dans une entrée cachée avant de soumettre le formulaire, puis obtenir ce selectedIndex et définir il avec une fonction javascript ... difficile mais me convient mieux dans ce cas ...

document.getElementById("select").selectedIndex=nr; 

Merci bien Jonathan!

+0

Je voudrais aller avec l'approche de Jonathan, qui est l'idiome standard pour ce faire. Le faire avec JS rend votre application inutilement dépendante de JavaScript et annulera la capacité du navigateur à se souvenir de la dernière valeur que vous avez sélectionnée lorsque vous revenez/avancez. – bobince

Questions connexes