サンプルコード
<?php
// PostgreSQLに接続する
$dbconn = pg_connect("host=localhost dbname=mydatabase user=myusername password=mypassword")
or die('Could not connect: ' . pg_last_error());
// POSTリクエストが送信された場合に、処理を実行する
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
// コンボボックスAから選択された値を取得する
$selected_value_a = $_POST['combo_box_a'];
// コンボボックスBから選択された値を取得する
$selected_value_b = $_POST['combo_box_b'];
// コンボボックスCから選択された値を取得する
$selected_value_c = $_POST['combo_box_c'];
// テーブルにデータを書き出す
$query = "INSERT INTO mytable (value_a, value_b, value_c) VALUES ($1, $2, $3)";
$result = pg_query_params($dbconn, $query, array($selected_value_a, $selected_value_b, $selected_value_c));
if (!$result) {
echo "An error occurred.\n";
exit;
}
// データの書き出しが完了したら、完了メッセージを表示する
echo "Data has been saved successfully.";
} else {
// POSTリクエストが送信されていない場合に、フォームを表示する
echo "<form id=\"my-form\" action=\"\" method=\"post\">";
echo "<select name=\"combo_box_a\" id=\"combo_box_a\">";
echo "<option value=\"1\">Option 1</option>";
echo "<option value=\"2\">Option 2</option>";
echo "<option value=\"3\">Option 3</option>";
echo "</select>";
echo "<select name=\"combo_box_b\" id=\"combo_box_b\"></select>";
echo "<select name=\"combo_box_c\" id=\"combo_box_c\"></select>";
echo "<button type=\"submit\" name=\"submit\">Update</button>";
echo "</form>";
// JavaScriptを使用して、コンボボックスAの値が変更されたら、コンボボックスBとコンボボックスCの選択肢を更新するようにする
echo "<script src=\"https://code.jquery.com/jquery-3.6.0.min.js\"></script>";
echo "<script>";
echo "$(document).ready(function() {";
echo "$('#combo_box_a').change(function() {";
echo "$.ajax({";
echo "url: 'get_data.php',";
echo "type: 'POST',";
echo "data: { combo_box_a: $('#combo_box_a').val() },";
echo "success: function(data) {";
echo "$('#combo_box_b').html(data.options_b);";
echo "$('#combo_box_c').html(data.options_c);";
echo "}";
echo "});";
echo "});";
echo "});";
echo "</script>";
}
// PostgreSQLからデータを抽出する関数を定義する
function get_data_from_postgresql($dbconn, $selected_value_a) {
// コンボボックスAの値に基づいて、PostgreSQLからデータを抽出する
$query = "SELECT * FROM mytable WHERE value_a = $1";
$result = pg_query_params($dbconn, $query, array($selected_value_a));
// コンボボックスBとコンボボックスCの選択肢を作成する
$options_b = "";
$options_c = "";
while ($row = pg_fetch_assoc($result)) {
$options_b .= "<option value="" . $row['value_b'] . "">" . $row['value_b'] . "</option>";
$options_c .= "<option value="" . $row['value_c'] . "">" . $row['value_c'] . "</option>";
}
// データを返す
return array("options_b" => $options_b, "options_c" => $options_c);
}
?>