2017-01-29 1 views
-1
<select name="title"> 

<selected value="<?php echo $title; ?>"><?php echo $title; ?></selected> 
<option value="Mrs">Mrs.</option> 
<option value="Ms">Ms.</option> 
<option value="Mr">Mr.</option> 
<option value="Dr">Dr.</option> 

</select> 

Je suis en train de lire une valeur d'une colonne Titre dans une base de données MySQL, qui est supposé lire la valeur, que ce soit M., Mme, Mme, puis de le comparer avec les valeurs dans la liste déroulante. Il permet ensuite à l'utilisateur de sélectionner un autre titre pour ensuite mettre à jour celui stocké dans la base de données MySQL.Lire la valeur de MySQL et de comparer l'option sélectionnée dans la liste déroulante

Je crée un profil utilisateur. Ainsi, lorsque l'utilisateur se connecte et accède à la vue pour modifier un profil, il doit se voir présenter une liste déroulante contenant le titre qu'il/elle a sélectionné lors de son inscription. Ensuite, s'il le souhaite, il peut changer le titre dans la liste déroulante et appuyer sur le bouton de mise à jour. Il doit maintenant mettre à jour le nouveau titre dans la base de données.

Répondre

1

Changer votre liste déroulante <select> de la manière suivante,

<select name="title"> 
    <option value="Mrs"<?php if($title == "Mrs"){ echo " selected='selected'"; } ?>>Mrs.</option> 
    <option value="Ms"<?php if($title == "Ms"){ echo " selected='selected'"; } ?>>Ms.</option> 
    <option value="Mr"<?php if($title == "Mr"){ echo " selected='selected'"; } ?>>Mr.</option> 
    <option value="Dr"<?php if($title == "Dr"){ echo " selected='selected'"; } ?>>Dr.</option> 
</select> 
+0

Merci beaucoup –

1

Il n'y a pas sélectionné balise HTML. Utilisez le sélectionné attribut de la balise option:

sélectionné

Si présent, cet attribut booléen indique que est initialement sélectionné l'option. Si l'élément < option> est le descendant d'un élément <select> dont l'attribut multiple n'est pas défini, une seule option <> de cet élément <select> peut avoir l'attribut sélectionné. 1

considèrent donc cet exemple de la section Examples de the Mozilla Developer Network page for <select>:

<!-- The second value will be selected initially --> 
 
    <select name="select"> 
 
     <option value="value1">Value 1</option> 
 
     <option value="value2" selected>Value 2</option> 
 
     <option value="value3">Value 3</option> 
 
    </select>

Votre code exemple peut être mis à jour de façon similaire:

<select name="title"> 
    <option value="Mrs" <?php if($title=="Mrs"){ echo "selected"; } ?>>Mrs.</option> 
    <option value="Ms" <?php if($title=="Ms"){ echo "selected"; } ?>>Ms.</option> 
    <option value="Mr" <?php if($title=="Mr"){ echo "selected"; } ?>>Mr.</option> 
    <option value="Dr" <?php if($title =="Dr"){ echo "selected"; } ?>>Dr.</option> 
</select> 

Une façon plus simple de le faire serait de traiter les noms d'abord, en utilisant array_reduce():

<?php 
$title = 'Dr'; 
$names = array('Mrs','Ms','Mr','Dr'); 
$options = array_reduce($names,function($carry,$name) use ($title) { 
    return $carry .= '<option value="'.$name.'"'.($title == $name?' selected':'').'>'.$name.'.</option>'; 
}); 
?> 
<select name="title"> 
    <?php echo $options;?> 
</select> 

Voir en action en this playground example.


https://developer.mozilla.org/en-US/docs/Web/HTML/Element/option

+0

Merci pour l'aide vraiment l'apprécier pouvez-vous s'il vous plaît upvote ma question –

+0

Le titre pour le contrôle upvote est « question _Ce montre l'effort de recherche, il est utile et clair _ "... votre question ne montre pas vraiment beaucoup d'effort de recherche et pourrait être plus concise. Vous pouvez en savoir plus sur upvoting [ici] (http://stackoverflow.com/help/privileges/vote-up). –