私はこれを2日間調査してきましたが、私の問題に対する適切な解決策をまだ見つけていません. 基本的に、jQuery を使用して複数のチェック ボックスに基づいて ID でデータベース行を「リンク」しようとしていますが、ここで少し注意が必要です。
バックグラウンド:
- 各行の横にチェック ボックスが
positions
ある HTML テーブル ( ) として表示されるデータベース テーブル ( ) があります。#ct
- 一度に最大 4 つの行をチェックして、相互に「リンク」することができます (ただし、チェックできるボックスの数の制限について心配する必要はありません)。
- SHOULDから行をリンクすると、列(PK) 、、、、、で
positions
1 つの新しい行が作成されます。covered_positions
id
linked_id1
linked_id2
linked_id3
linked_id4
すでに行われていること:
- 各チェックボックスには、すでに
id
それぞれの行に値が割り当てられていますpositions
- ドロップダウン選択ボックスはすでにJavascript 関数をトリガーしています
ctActions()
私が必要だと思うもの:
ctActions()
次のようなものを使用して、チェックボックスの値の配列を作成します。var linked_ids = []; $("#ct input[type='checkbox']:checked").each(function() { linked_ids.push(this.value); });
データをエンコードして PHP に送信します。
var linked_ids_json = JSON.stringify(linked_ids); $.post('link-positions.php', { linked_ids_json: linked_ids_json } );
私の中で
link-positions.php
:// Get & explode array $array = json_decode($_POST['linked_ids_json']); // Test whether each value is set -- Not sure if needed $linked_id1 = (isset($array[0]) ? $array[0] : ""); $linked_id2 = (isset($array[1]) ? $array[1] : ""); $linked_id3 = (isset($array[2]) ? $array[2] : ""); $linked_id4 = (isset($array[3]) ? $array[3] : ""); include('../mysqli-connect.php'); $conn = dbConnect(); $sql = "INSERT INTO `covered_positions` ( linked_id1, linked_id2, linked_id3, linked_id4) VALUES (?, ?, ?, ?)"; $stmt = $conn->prepare($sql); $stmt->bind_param('iiii', $linked_id1, $linked_id2, $linked_id3, $linked_id4); $stmt->execute(); $conn->close();
しかし、このすべての後、何も起こりません。私のコードにはいくつかの露骨なエラーがあると確信しているので、経験豊富な人のために投稿すると思いました。
アップデート
- に修正
$stmt->execute
しまし$stmt->execute()
たが、それでも問題は解決しません。