我确实有一个使用 PHP、MySQL 和 JavaScript 的例程。有两个表:tbl_category 和 tbl_subcategory 就像这样:
tbl_category
- cat_id
- 猫名
tbl_subcategory
- scat_id
- cat_parent_id
- 猫名
他们里面有一些信息,比如
tbl_category:
- 裤子
- 鞋
- T 恤
tbl_子类别:
- 1 牛仔裤
- 1 重型
- 2 靴子
- 2 凉鞋
- 3 长袖
- 3 短袖
- 3 马球
我在文件头中放入了 javascript 库的链接:
<script type="text/javascript" src="jquery-1.8.2.min.js"></script>
当然,我以前从 jquery 网站下载(较新版本)。
我现在有脚本例程:
<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 中的数据:
<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... 显示,但第二个 ComboBox 始终为空,无论我选择什么项目,它都显示为空并变小(宽度) .
这是一个很好的例行程序,我从另一个网站看到在网络上工作。
你们能帮我找到解决办法吗?
谢谢