私は、食事をデザインし、食材を追加または削除することができるアプリケーションを作成しています。しかし、私が苦労している問題は$ _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'データを保存してください。 '$ input '=' – Kitson88