jQuery を使用して、2 番目の選択ボックスとテキスト フィールドにデータを入力したいと考えています。最初の選択ボックスで選択が行われると、2 番目の選択ボックスが正しく入力されます。ただし、テキストフィールドに入力することはできませんでした。
データは MySQL データベースから取得されます。以下は、最初の選択ボックスで2番目の選択を行うために作業しているコードです。
私のjQueryコード:
<script>
$(document).ready(function(){
$("#shipment").change(function() {
$("#vender").load("selection.php", $("#shipment"));
}).trigger("change");
});
</script>
これに関連するフォーム フィールド:
<html>
<label for="shipments">Shipment: </label><select id="shipment" name="shipment_id">
<?php if(isset($shipment_selection)) { echo $shipment_selection; } ?> //echos options from db.
</select>
<label for="vender">Vender: </label><select id="vender" name="vender_id"></select>
<label for="cost">Cost: </label>><input type="text" id="cost" name="cost" value="" />
</html>
データを取得する PHP スクリプト:
<?php
include('../scripts/db_config.php');
if(isset($_POST['shipment_id'])) {
if($_POST['shipment_id'] == 1) {
$sql = 'SELECT id AS vender_id, name AS vender_name FROM venders'; //shows all venders, when shipment is none.
}
else {
$sql = 'SELECT venders.id AS vender_id, venders.name AS vender_name, shipment.qty AS qty, shipment.cost AS cost FROM shipments INNER JOIN venders ON venders.id=shipments.vender_id WHERE shipments.id='.$_POST['shipment_id']; //Select vender associated with specific shipment.
}
$stmt = $db->query($sql);
$data = array();
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
$data[] = $row;
//echo '<option value="'.$row['vender_id'].'">'.$row['vender_name'].'</option>'; //populates second select box.
}
echo json_encode($data);
}
これが機能するようになったら、PHP コードをより安全に保護します。
最初の選択ボックスで選択内容を取得して 2 番目の選択ボックスにデータを入力する方法と、テキスト フィールドについての提案は素晴らしいでしょう。
フォーマットがオフの場合はお詫びします。私は盲目なので、実際に画面上でどのように見えるかわかりません。