-2
我正在创建一个应用程序,可让您设计膳食并添加或删除配料。但是,我正在努力解决的问题是$ _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