php: получение переменной (выбор пользователя с помощью переключателя) в другой файл

#php #radio-button

#php #переключатель

Вопрос:

У меня есть список элементов в одном файле (fruit.php ):

 <form action="delete_items.php" method="post">
     <input type="radio" value="apple" name="fruit">Apple<br>
     <input type="radio" value="pear" name="fruit">Pear<br>
     <input type="radio" value="banana" name="fruit">Banana<br>
     <input type="submit" value="delete" name="deleteButton"><br>
</form>
  

В delete_items.php , У меня есть переменная, которая хранит выделение:

 <?php
    $selection = $_POST["fruit"];

    echo "are you sure you want to delete it?";
    echo '<form action="delete_confirmation.php" method="post"><br>';
    echo '<input type="submit" name="deleteYes" value="Yes"><br>';
    echo '<input type="submit" name="deleteNo" value="No"><br>';
    echo '</form>';
?>
  

Чем в файле подтверждения (delete_confirmation.php ):

 <?php
      include 'delete_items.php';
                     
      if($_POST["deleteYes"]){
           $query = 'DELETE FROM databaseName WHERE fruitName="' . $selection . '"';
           $result = mysqli_query($connection, $query);

           if(!$result){
                 die("Delete after check query failed!");
           } else {
                 echo "Delete after check query success!";
           }
      } elseif($_POST["deleteNo"]){
           echo "The course was not deleted!";
      }
?>
  

Но переменная $selection в delete_confirmation.php файл всегда имеет значение null, даже несмотря на то, что я включил delete_items.php файл (когда я повторяю его, ничего не отображается). Есть ли способ передать переменную выбора из delete_items.php к тому delete_confirmation.php досье?

Комментарии:

1. Вам нужно добавить fruit во вторую форму. Попробуйте использовать скрытый ввод, например echo '<input type="hidden" name="fruit" value="'.$selection.'"/>';

2. @Phil спасибо за ваш ответ! Я попробовал это, и это сработало. Однако нет ли способа сделать это с помощью кнопок «да» и «нет»?

3. HTTP не имеет состояния. Вы либо передаете соответствующие данные с каждым запросом, либо сохраняете их где-нибудь для последующего извлечения

4. @Phil Большое вам спасибо за ваше объяснение и за ваш ответ 🙂