さて、基本的に私はhtmlテーブルと保存ボタンに追加したデータを持っています。このボタンでテーブル内のデータをphp関数に送信して、データを使用してmysqlデータベースを変更できるようにします。データを取得できる限り、データベースを変更するためのツールがあります。しかし、私にはこれを行う方法がわかりません。これを達成するための最良の方法は何ですか?
3 に答える
@John Condeが言ったことに加えて、テーブルに表示されるすべてのレコードについて、それぞれの非表示フィールドを作成する必要があります。つまり、 <input type="hidden"... />
テーブルに行と列があることを考慮して、いくつかの仮定を行います。
- 行は、レコードごとにあるデータと同等であると想定します
- 列は、レコードごとにデータで更新するフィールドであること
この仮定を実行します(3つのフィールド、つまり3つの列と2つのレコードを仮定します)
Field 1 Field 2 Field 3
Row 1 a b c
Row 2 d e f
これらのそれぞれについて、次のように送信ボタンを含めるために作成するフォームに、対応する入力フィールドを作成します。
<form action="" method="post">
<!--Row 1-->
<input type="hidden" name="field_1[]" value="a" />
<input type="hidden" name="field_2[]" value="b" />
<input type="hidden" name="field_3[]" value="c" />
<!--Row 2-->
<input type="hidden" name="field_1[]" value="d" />
<input type="hidden" name="field_2[]" value="e" />
<input type="hidden" name="field_3[]" value="f" />
<!-- more rows if they exist -->
<input type="submit" name="my_btn" value="POST IT!" />
</form>
PHP側では、次のようにフォームフィールドを処理できます。
foreach($_POST["field_1"] as $id=>$field1_value){
$field2_value = $_POST["field_2"][$id];
$field3_value = $_POST["field_3"][$id];
.......
}
お役に立てれば
まず、テーブルを<フォーム>に配置し、アクションと選択したメソッド(GET、POSTなど)を指定します。このような:
<br>
< form id="tktk" name="tktk" method="GET" action=" < ? php echo $_SERVER['PHP_SELF'];?>?return=Yes"><br>
< table style="width: 98%;border:0px"><br>
< tr><br>
< td>etc.etc.<br>
次に、次のように送信できます。
if(isset($_GET['return']) && $_GET['return'] == 'Yes'){
$sql = "UPDATE [table] SET [field-a] = 1 WHERE [field-b] = '" . $id . "'";<br>
$result = sqlsrv_query($link, $sql) or die('Errant query: '.$sql);<br>
}
しかし、一般的に、私は、あなたがコーディングしているものを完全に理解するために、最初にチュートリアルをステップスルーすることを勧める他の人たちに同意します。
テーブル内のデータは、フォームの送信時に送信できるように、など
<input>
のフォームフィールドに入力するか、< hidden"`>フィールドに入力する必要があります。<textarea>
input type="
フォームでメソッドをに設定する必要があります
POST
(ただしGET
、機能しますが、ベストプラクティスではありません_すべてのフォームデータは
$_POST
スーパーグローバルにあります。