サンプルコード

 

<?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);

}

?>