J'ai une liste déroulante nommée "Make". Dans cette liste déroulante, je charge les noms des fabricants de véhicules. Lorsque je clique sur le bouton RECHERCHER, je souhaite afficher le nom du fabricant sélectionné. Ci-dessous une partie de mon code HTML.
<label for="Manufacturer"> Manufacturer : </label>
<select id="cmbMake" name="Make" >
<option value="0">Select Manufacturer</option>
<option value="1">--Any--</option>
<option value="2">Toyota</option>
<option value="3">Nissan</option>
</select>
<input type="submit" name="search" value="Search"/>
Vous trouverez ci-dessous mon code PHP jusqu'à présent.
<?php
if(isset($_POST['search']))
{
$maker = mysql_real_escape_string($_POST['Make']);
echo $maker;
}
?>
Si je sélectionne Toyota dans la liste déroulante et appuie sur le bouton RECHERCHER, la réponse est «2». Cela signifie que cela me donne la valeur de la «Toyota». Mais je veux afficher le nom "Toyota". Comment puis je faire ça? Aidez-moi, s'il vous plaît ....
Essayez avec ça. Vous obtiendrez la valeur de la zone de sélection dans $ _POST ['Make'] et le nom dans $ _POST ['selected_text']
<form method="POST" >
<label for="Manufacturer"> Manufacturer : </label>
<select id="cmbMake" name="Make" onchange="document.getElementById('selected_text').value=this.options[this.selectedIndex].text">
<option value="0">Select Manufacturer</option>
<option value="1">--Any--</option>
<option value="2">Toyota</option>
<option value="3">Nissan</option>
</select>
<input type="hidden" name="selected_text" id="selected_text" value="" />
<input type="submit" name="search" value="Search"/>
</form>
<?php
if(isset($_POST['search']))
{
$makerValue = $_POST['Make']; // make value
$maker = mysql_real_escape_string($_POST['selected_text']); // get the selected text
echo $maker;
}
?>
Mettez tout ce que vous voulez envoyer à PHP dans l'attribut value
.
<select id="cmbMake" name="Make" >
<option value="">Select Manufacturer</option>
<option value="--Any--">--Any--</option>
<option value="Toyota">Toyota</option>
<option value="Nissan">Nissan</option>
</select>
Vous pouvez également omettre l'attribut value
. Il utilise par défaut le texte.
Si vous ne voulez pas changer le code HTML, vous pouvez mettre un tableau dans votre PHP pour traduire les valeurs:
$makes = array(2 => 'Toyota',
3 => 'Nissan');
$maker = $makes[$_POST['Make']];
Vous pouvez y parvenir en créant un nouveau tableau:
<?php
$array = array(1 => "Toyota", 2 => "Nissan", 3 => "BMW");
if (isset ($_POST['search'])) {
$maker = mysql_real_escape_string($_POST['Make']);
echo $array[$maker];
}
?>
si vous le chercher à partir de la base de données alors
<select id="cmbMake" name="Make" >
<option value="">Select Manufacturer</option>
<?php $s2="select * from <tablename>";
$q2=mysql_query($s2);
while($rw2=mysql_fetch_array($q2)) {
?>
<option value="<?php echo $rw2['id']; ?>"><?php echo $rw2['carname']; ?></option><?php } ?>
</select>
vous pouvez créer un événement jQuery onChange pour obtenir le texte de la liste déroulante lorsque l'utilisateur sélectionne l'un d'entre eux:
<script>
$( "select" )
.change(function () {
var str = "";
$( "select option:selected" ).each(function() {
str += $( this ).text() + " ";
});
$('#EvaluationName').val(str);
})
.change();
</script>
Lorsque vous sélectionnez une option, le texte est enregistré dans un masque de saisie.
<input type="hidden" id="EvaluationName" name="EvaluationName" value="<?= $Evaluation ?>" />
Après cela, lorsque vous soumettez le formulaire, il vous suffit de récupérer la valeur de l'entrée
$Evaluation = $_REQUEST['EvaluationName'];
Vous pouvez ensuite faire ce que vous voulez avec le texte, par exemple, enregistrez-le dans une variable de session et envoyez-le sur une autre page. etc.
Changez la valeur de vos options de sélection:
<select id="cmbMake" name="Make" >
<option value="">Select Manufacturer</option>
<option value="Any">--Any--</option>
<option value="Toyota">Toyota</option>
<option value="Nissan">Nissan</option>
</select>
Vous ne pouvez pas obtenir le texte de l'option sélectionnée en php. il ne donnera que la valeur de l'option sélectionnée.
Édité:
<select id="cmbMake" name="Make" >
<option value="0">Select Manufacturer</option>
<option value="1_Any">--Any--</option>
<option value="2_Toyota">Toyota</option>
<option value="3_Nissan">Nissan</option>
</select>
ON php file:
$maker = mysql_real_escape_string($_POST['Make']);
$maker = explode("_",$maker);
echo $maker[1]; //give the Toyota
echo $maker[0]; //give the key 2