<select>
タグからの選択を変更するたびに ajax を使用してチェックボックスを動的に作成することを検討しています。関連するフォームのセクションについては、以下のスクリーンショットを参照してください。
注: [ Queues ]の下のチェックボックスは動的にする必要があります。
現時点では、Teamの値を変更すると、チーム名 (この場合は "Test") が取得され、ajax (POST) を使用してそのチームのマネージャー名が返されます。
私がやりたいことは、各チームに関連付けられた「キュー」のリストを持つ別のテーブルを検索することです。「マネージャー名」フィールドのタグに「onchange」属性を追加します。
以下は、Team => Manager Nameの動的入力を実現するために現在使用しているコードです。
<script>
window.onload = function() {
getManager($("#team").val());
}
function getManager(team) {
$.ajax({
type: "POST",
url: "getManager.php",
data: {team:team}
}).done(function( manager ) {
$("#manager_name").val(manager);
});
}
</script>
そしてgetManager.php
、これが使用するファイルです:
<?php
require("../../database/db.php");
$mysqli = new db("nab_reporting");
if ($mysqli->connect_errno) {
printf("Connect failed: %s\n", $mysqli->connect_error);
exit();
}
$team=$mysqli->real_escape_string($_POST['team']);
$result = $mysqli->query("SELECT manager_name FROM team WHERE teamname = '".$team."'");
$row = $result->fetch_assoc();
echo $row['manager_name'];
mysqli_close($mysqli);
?>
上記が機能することに注意してください。ここで、ajax を使用するManager Nameonchange
フィールドの属性を使用する方法が必要になり(上記と同様)、現在フィールドにある値 (この場合は Kane Charles) を別の PHP ページに渡し、結果セット (配列または JSON でしょうか?) そのチーム名と一致するデータベース内のすべてのキューのリストを含みます。
以下は、さまざまなビットごとの html コードです。
チーム
<select name="team" id="team" required="required" onchange="getManager(this.value)">
<?php
include(__DIR__ . "/../../database/db.php");
$db = new db("nab_reporting");
$result = $db->query("SELECT teamname FROM team");
while ($row = $result->fetch_assoc()) {
echo "
<option value=\"" . $row['teamname'] . "\">" . $row['teamname'] . "</option>
";
}
$db->close();
?>
</select>
マネージャー名
<input type="text" name="manager_name" id="manager_name" required="required" onchange="getQueues(this.value)">
キュー
<label>
Queues
</label>
<div id="queue_options">
<!-- queues dynamically created here -->
</div>
の内容をqueue-options
消去して、現在のチームに関連付けられているキューのみにリセットする必要があります。私は ajax をあまり扱っていないので、ここに投稿しています。