web-dev-qa-db-fra.com

PHP obtenir la valeur et le texte de la liste déroulante

<select id="animal" name="animal">                      
<option value="0">--Select Animal--</option>
<option value="1">Cat</option>
<option value="2">Dog</option>
<option value="3">Cow</option>
</select>

if($_POST['submit'])
{
$animal=$_POST['animal'];
}

J'ai un menu déroulant comme celui-ci. Ce que je veux, je veux obtenir la valeur sélectionnée et le texte dans le bouton soumettre en utilisantPHP. Je veux dire si c'est sélectionné 1er. Je veux avoir les deux 1 et Cat

S'il vous plaît aider. Je vous remercie.

7
Sasindu H
$animals = array('--Select Animal--', 'Cat', 'Dog', 'Cow');
$selected_key = $_POST['animal'];
$selected_val = $animals[$_POST['animal']];

Utilisez votre liste d'animaux $ pour générer votre liste déroulante; vous pouvez maintenant obtenir la clé et la valeur de cette clé.

12
john

Y a-t-il une raison pour laquelle vous ne l'utilisez pas?

<select id="animal" name="animal">                      
  <option value="0">--Select Animal--</option>
  <option value="Cat">Cat</option>
  <option value="Dog">Dog</option>
  <option value="Cow">Cow</option>
</select>

if($_POST['submit'] && $_POST['submit'] != 0)
{
   $animal=$_POST['animal'];
}
15
Swift

Vous devrez enregistrer la relation côté serveur. La valeur est la seule partie transmise lors de la publication du formulaire. Vous pourriez faire quelque chose de méchant comme ...

<option value = "2 | Chien"> Chien </ option>

Séparez ensuite le résultat si vous le souhaitiez vraiment, mais c’est un vilain bidouillage et un gaspillage de bande passante, à supposer que les chiffres soient vraiment uniques et aient une relation un à un avec le texte.

Le meilleur moyen serait de créer un tableau et de le parcourir pour créer le code HTML. Une fois le formulaire publié, vous pouvez utiliser la valeur pour rechercher le texte dans le même tableau.

1
Bill Heller

vous pouvez le faire en utilisant un fichier js et un appel ajax. tout en validant les données en utilisant le fichier js, nous pouvons lire le texte de la liste déroulante sélectionnée

$("#dropdownid").val();   for value
$("#dropdownid").text(); for selected value

attrapez-les dans deux variables et prenez-les comme entrées à l'appel ajax pour un fichier php

$.ajax 
   ({
     url:"callingphpfile.php",//url of fetching php  
     method:"POST", //type 
     data:"val1="+value+"&val2="+selectedtext,
     success:function(data) //return the data     
     {

}

et en php vous pouvez l'obtenir comme

    if (isset($_POST["val1"])) {
    $val1= $_POST["val1"] ;
}

if (isset($_POST["val2"])) {
  $selectedtext= $_POST["val1"];
}
1
Srinivasa Reddy