[ad_1]
数値入力フィールドと送信ボタンがあります。 タスク: ボタンをクリックすると、数値が $a 配列にプッシュされます。 数値は $weight です。
しかし、次の番号をプッシュしたい場合は、インデックス 0 の番号を置き換えます。
なんで?
私が試したこと:
<pre lang="PHP"><!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Weight loss app</title> </head> <body> <?php $a = []; if (isset($_POST['submit'])) { $weight = $_POST['weight']; array_push($a, $weight); } print_r($a); ?> <form action="" method="post"> <input type="number" name="weight" id="weight"> <button type="submit" name="submit">Upload weight</button> </form> </body> </html>
解決策 1
PHP 変数の値は、リクエスト間で保持されません。 フォームを送信するたびに空の配列を作成し、それに値を 1 つ追加します。 以前に送信した値は記憶されません。
以前の値を保持したい場合は、フォーム内に隠しフィールドとして追加する必要があります。
PHP
<?php $a = []; if (isset($_POST['submit'])) { $a = $_POST['weight']; } print_r($a); ?> <form action="" method="post"> <?php foreach ($a as $weight) { echo '<input type="hidden" name="weight[]" value="' . $weight . '">'; } ?> <input type="number" name="weight[]" id="weight"> <button type="submit" name="submit">Upload weight</button> </form>
[ad_2]
コメント