「 oc_t_item_car_make_attr」、「oc_t_item_car_model_attr」という 2 つのテーブルがあります。
では、これらの 2 つのテーブルから信頼できるドロップダウンを作成するにはどうすればよいでしょうか?
探しているコード全体は次のとおりです。
以下のコードは、データベースからすべての車の名前を動的に表示します。
<select name="cars" id="carmodels">
<option value="">select</option>
<?php
$qry = mysqli_query("select * from oc_t_item_car_make_attr");
while($row=mysqli_fetch_array($qry)){
echo "<option value=".$row['pk_i_id'].">".$row['s_name']."</option>";
}
?>
</select>
以下の結果には、上で選択した名前に応じた車種が表示されます。
html:
<select name="models" id="models">
</select>
データベースから車のモデルを取得するには、ajax を使用する必要があります。
$(document).on('change','#carmodels',function(){
var value = $(this).val();
$.ajax({
url: "demo.php",
type: "GET",
data: { id : value},
success: function(data){
$("#models").html(data);
}
});
デモ.php:
<?php
include "connection.php"; //database connection code
$qry = mysql_query("SELECT * FROM oc_t_item_car_make_attr
INNER JOIN oc_t_item_car_model_attr
ON oc_t_item_car_model_attr.pk_i_id = oc_t_item_car_make_attr.pk_i_id
WHERE oc_t_item_car_make_attr.pk_i_id =".$_GET['id'].");
while($row=mysqli_fetch_array($qry)){
echo "<option value=".$row['pk_i_id'].">".$row['s_name']."</option>";
}
?>
実際には質問をよく理解していませんでしたが、おそらく次のようなものが必要です。
SELECT * FROM oc_t_item_car_make_attr
INNER JOIN oc_t_item_car_model_attr
ON oc_t_item_car_model_attr.fk_i_make_id = oc_t_item_car_make_attr.pk_i_id
WHERE oc_t_item_car_make_attr.pk_i_id = ?
疑問符の代わりに id を挿入する必要があります。