web-dev-qa-db-fra.com

Afficher la valeur sélectionnée dans un menu déroulant

J'ai une configuration multisite et j'ajoute des champs d'informations supplémentaires dans l'écran de modification du profil dans le tableau de bord de mon thème. J'utilise principalement des champs de texte, mais j'ai un menu déroulant pour le pays de l'auteur.

<select name="country" class="mid2" id="country"  value="<?php echo $userdata->country ?>" style="width:150px;">

Mon problème est que si un utilisateur sélectionne "Togo" par exemple, il enregistre le changement (je le sais car il y fait écho dans la page de biographie de l'auteur), mais la valeur par défaut dans le menu déroulant (dans ce cas les États-Unis) reste toujours le même.

Des idées sur la façon dont je peux l'afficher quel que soit le pays sélectionné par l'auteur?

1
Dean Elliott

Wordpress a une très petite fonction intégrée pour gérer les sélections.

<option <?php selected('value1', 'value2');?> value='foo'>Bar</option>

Vous pouvez également vérifier ces fonctions de gestion de formulaire:

Votre syntaxe HTML est également fausse. Selon le W3C, "valeur" n'est pas un attribut de la balise select. La valeur d'une sélection est définie dans les options d'une sélection. Ça devrait ressembler à ça:

<select name="country" class="mid2" id="country" style="width:150px;">
    <option value="US" <?php selected('US', $userdata->country);?>>USA</option>
    <option value="ES" <?php selected('ES', $userdata->country);?>>Spain</option>
    <option value="FR" <?php selected('FR', $userdata->country);?>>France</option>
</select>
2
Brian Fegter

Donc, vous dites que cela enregistre le changement, de sorte que cela ne ressemble pas vraiment à un problème de Wordpress, mais voici comment afficher cela de toute façon.

<option value="your_value" <?php if(this is the Country you selected)echo 'selected="selected"'; ?> >The Country</option> 
0
Cole