PHP、MySQL、および JavaScript を使用するルーチンがあります。次のように、tbl_category と tbl_subcategory の 2 つのテーブルがあります。
tbl_category
- cat_id
- 猫の名前
tbl_subcategory
- scat_id
- cat_parent_id
- 猫の名前
彼らは内部にいくつかの情報を持っています
tbl_category:
- パンツ
- 靴
- Tシャツ
tbl_subcategory:
- 1 ジーンズ
- 1 ヘビーデューティー
- 2 ブーツ
- 2 サンダル
- 3 長袖
- 3 半袖
- 3 ポロ
ファイルの先頭に、javascript ライブラリへのリンクを追加しました。
<script type="text/javascript" src="jquery-1.8.2.min.js"></script>
もちろん、以前にjquery Webサイト(新しいバージョン)からダウンロードしました。
私は今、スクリプトルーチンを持っています:
<script type="text/javascript">
$(document).ready(function(){
$("select[name=cat_id").change(function(){
$("select[name=scat_id]").html('<option value="">Loading...</option>');
$.post("ajax_subcategory.php",
{cat_id:$(this).val()},
function(valor){
$("select[name=scat_id]").html(valor);
}
)
})
})
これで、テーブル tbl_category からのデータが事前にロードされた選択フィールド Category を持つフォームができました。
<form name="form" method="post" action="" enctype="multipart/form-data">
<table width="100%" border="0" cellspacing="6" cellpadding="0">
<tr>
<td align="right">Category:</td>
<td><select name="cat_id" >
<option value="0">Choose category</option>
<?php
$sql1 =mysql_query("SELECT * FROM tbl_category ORDER by cat_name")or die(mysql_error());
while($row = mysql_fetch_array($sql1))
{
echo ("<option value=\"$row[cat_id]\"" . ($sql1 == $row["cat_name"] ? " selected" : "") . ">$row[cat_name]</option>");
}
?></select>
</td>
</tr>
<tr>
<td align="right">Sub-category:</td>
<td><select name="scat_id" selected="selected" >
<option value="0">Waiting category...</option>
</select>
</td>
</tr>
</table>
<input type="submit" name="submit" value="Submit"/>
</form>
そして、ajax_subcategory という名前の php ファイル:
<?php
include "../connect_to_mysql.php";
$cat_id = $_POST['cat_id'];
$sql1 =mysql_query("SELECT * FROM tbl_subcategory WHERE cat_parent_id='$cat_id' ORDER by cat_name")or die(mysql_error());
while($row = mysql_fetch_array($sql1))
{
echo ("<option value=\"$row[scat_id]\"" . ($sql1 == $row["scat_name"] ? " selected" : "") . ">$row[scat_name]</option>");
}
?>
終わり!すべてが完璧で美しく見えます。最初のコンボで項目を選択すると、Javascript が動作し、Loading... が表示されますが、2 番目の ComboBox は常に空です。どの項目を選択しても、空で表示されて小さくなります (幅) .
これは良いルーチンであり、別の Web サイトから Web で作業しているのを見ました。
解決策を見つけるのを手伝ってもらえますか?
ありがとう