Восстановить значение пользователя в выпадающем списке - PullRequest
0 голосов
/ 18 апреля 2020

Я хотел бы восстановить значение щелчка пользователя в раскрывающемся списке.

Например, у меня есть это:

<form id="form-recipe" action="essaie4.php?IDR=<?php echo($ET2['IDR'])?>" method="POST">


      <label for="ing-select">Ingrédient</label>
      <!--<select id="ing-select" class="ingredients" name="ingId" onChange="header("Location: essaie4.php?$IDR=<?php //echo $_GET['$IDR'];?>">-->
       <input id = "surface" name="ingred" type="TEXT"/> 


      <!--<select id="essaie1" onclick="this.form.ingred.value=this.options[this.selectedIndex].value;">-->
                    <option id= "1"value="1">salade</option>
                    <option id = "2"value="2">steak</option>
                    <option id = "3"value="3">pain</option>
                    <option value="4">oignons</option>
                    <option value="5">ketchup </option>
                    <option value="10">totame</option>
                    <option value="11">sauceuranium</option>
                    <option value="12">cornichon</option>
               </select>

И я хотел бы восстановить щелчок пользователь, если он нажимает «salade» или «steak», я возвращаю это значение, (value = 1) или value = 2 для стейка ... но я не хочу использовать javascript, я хочу сделать это в php, но я понятия не имею, как это сделать.

Я не хочу использовать if isset (), потому что я бы сделал слишком много, если isset

Спасибо, что прочитали меня

РЕДАКТИРОВАТЬ:

Спасибо, но почему, когда я делаю:

<?php
$query3 = "SELECT id_ingredient from composition where id_recette=$IDR;";
    $response3 = $db->query($query3);
    $response3->setFetchMode(PDO::FETCH_ASSOC );

    //On boucle sur toutes les lignes récupérées
    foreach ($response3 as $row) {
        //On crée un tableau qui contiendra toutes nos personnes
        $persons3[] = $row;
    }
    $response3->closeCursor();
?>


if (!empty($_POST["ingred"]) AND (!empty($_POST["quanti"]))){
$var_ingred = $_POST["ingred"];
$var_quanti = $_POST['quanti'];
foreach($persons3 as $ET3){
    #echo ($ET3['id_ingredient']);
    #echo $_POST["ingred"];
    if(($ET3['id_ingredient']) ==  $_POST['ingred']      ){//"echo <script>e</script>"){
    $condition = 1;}
    else{
    $condition = 0;}

Если я нажимаю на oignons, он уже существует в моей базе данных, но почему PHP говорит мне, что мой условие = 0 а не 1 ?? это всегда берет меня последний элемент, который присутствует?

я не понимаю

Ответы [ 2 ]

1 голос
/ 18 апреля 2020

Поместите name="ingred" в <select> вместо использования отдельного ввода текста.

<form id="form-recipe" action="essaie4.php?IDR=<?php echo($ET2['IDR'])?>" method="POST">


  <label for="ing-select">Ingrédient</label>

  <select id="ing-select" name="ingred">
    <option id="1" value="1">salade</option>
    <option id="2" value="2">steak</option>
    <option id="3" value="3">pain</option>
    <option value="4">oignons</option>
    <option value="5">ketchup </option>
    <option value="10">totame</option>
    <option value="11">sauceuranium</option>
    <option value="12">cornichon</option>
  </select>

Затем вы получите выделение, используя $_POST['ingred'] в PHP после отправки формы.

0 голосов
/ 18 апреля 2020

PHP может обрабатывать эту функцию только в том случае, если ваша форма #form-recipe имеет отправку (нажав кнопку submit ).

Дайте элементу select a Атрибут name:

<form id="form-recipe" action="/some/action" method="POST">
    <select name="foo">
        <option value='1'>salade</option>
        <option value='2'>steak</option>
        <!-- Etc... -->
    </select>
</form>

Когда пользователь отправляет форму, $_POST['foo'] будет содержать значение параметра выбора. 1 для салат , 2 для стейк и др. c ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...