Я создаю приложение, которое позволяет вам готовить еду и добавлять или удалять ингредиенты. Однако проблема, с которой я борюсь, - это данные $ _POST. Проблема, с которой я сталкиваюсь, мне нужна кнопка для каждые $ _POST форма данных.
Например, я могу использовать кнопку вида еды, чтобы перечислить ингредиенты (как видно на рисунке), однако, поскольку это действие обновляет страницу, данные $ _POST [еда] больше не существуют. Поэтому, когда я пытаюсь удалить ингредиент, он может дать мне выбранный ингредиент, но не название блюд.
Каков правильный способ получить данные $ _POST? Я должен в основном сделать новую форму и кнопку для каждой подачи. Нужно ли использовать какой-то AJAX, чтобы он не обновлял страницу, и я теряю эти данные? Или мне нужно использовать метод $ _GET?
<?php
if (isset($_POST['view_meal'])){
$meal = (string)$_POST['meal_names'];
$meal_fk_q = "SELECT item
FROM meal_ingredients
WHERE meal_name='$meal'
ORDER BY item";
$meal_fk_c = $conn->query($meal_fk_q);
$option_string = "";
echo "<div class='view_meal_table_wrapper'>";
while ($row = $meal_fk_c->fetch_assoc()){
$view_ingredient = $row['item'];
echo "<table class='view_meal_table'>
<tr>
<td class='view_meal cell'>$view_ingredient</td>
</tr>
</table>";
$option_string .= "<option>" . $view_ingredient . "</option>";
}
echo "</div>";
echo "<form action='createmeal.php' method='post'>
<select name='remove_ingredients'>
<option disabled selected value> -- Remove Ingredient -- </option>";
echo $option_string;
echo "</select>
<input type='submit' name='remove_ingredient' value='Remove Ingredient'>";
}
if (isset($_POST['remove_ingredient'])){
$ingr = $_POST['remove_ingredients'];
$sql = "DELETE FROM meal_ingredients
WHERE item='$ingr'";
if ($conn->query($sql) === TRUE) {
echo "Record deleted successfully";
} else {
echo "Error deleting record: " . $conn->error;
}
}
?>
если вы не хотите чтобы обновить страницу, тогда AJAX - это способ. AJAX - это комбинация php и javascript. используя его, вы можете общаться с сервером и добавлять элементы в таблицу с помощью javascript. тогда, когда все предметы есть, отправьте страницу как обычную форму. все данные POST будут на странице обработки, затем – NoLiver92
Если вы хотите поддерживать информацию между представлениями формы, вам необходимо убедиться, что вы размещаете эту информацию в форме каждый раз, когда она отправляется, а затем обновляется. См. '' – RiggsFolly
Если вы хотите хранить данные между перезагрузками страниц с помощью PHP, просто используйте '$ _SESSION' для хранения данных' $ _POST'. – Kitson88