动态选择框
问题描述:
我正在学习Php & Mysql。动态选择框
我有一个数据库(练习)2表。一个是类别,另一个是子类别。
在我的html表单中有一个来自Category表的选择框数据列表。 所以我需要,如果我选择这个列表框,他们的另一个选择框的数据将会出现在与分类表相关的子分类表中。例如:
分类表
Id Cat_name
1 O level
2 A level.
子类别表:
id Cat_id Sub_name
1 1 O-level Math
2 1 O-level English
3 2 A-level Math
4 2 A-level English
在此先感谢。
答
如果您希望在没有页面重新加载的情况下实现无缝高效的操作,您需要查看JQuery Ajax功能。 Ajax的工作方式是当某人在第一个框中进行选择时,它会将这些数据发送到一个php脚本,该脚本可以从第一个框中获取答案,运行mysql查询,然后将新子类别返回到原始页面,而无需重新加载页面。
例子: 在你的test.php
//On selection change state, call the ajax
$("#elementid").change(function() {
var selection = $(this).children("option:selected");
$.ajax({
url: 'caller.php',
dataType: 'json',
data: 'selected='+selection,
success: function(data) {
//Fill the second selection with the returned mysql data
}
});
}
<select id="elementid">
<option value="volvo">Volvo</option>
<option value="saab">Saab</option>
<option value="mercedes">Mercedes</option>
<option value="audi">Audi</option>
</select>
在你caller.php
$selection = $_POST["selected"];
//Create an array to hold all the subcategories, say the array is called $sub
echo json_encode(array(success => $sub));
exit;
答
您需要使用Ajax才能完成此任务,在第一个下拉列表中选择一个值后,您会通过ajaxnto另一个php文件发送请求,该文件会根据第一个选择给出最终的子类别。然后,Ajax将在您的第二个下拉列表中插入这个新数据。 您还可以查看jquery库中的post函数,这将使整个过程变得更加简单。
我如何使用这个jQuery的Ajax功能读了? – Shibbir 2012-08-11 08:57:32
谢谢我正在检查.... – Shibbir 2012-08-11 09:13:34
你也可以使用javascript数组来做到这一点 – 2014-03-28 06:02:54