动态选择框

动态选择框

问题描述:

我正在学习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; 

Jquery.ajax

+0

我如何使用这个jQuery的Ajax功能读了? – Shibbir 2012-08-11 08:57:32

+0

谢谢我正在检查.... – Shibbir 2012-08-11 09:13:34

+0

你也可以使用javascript数组来做到这一点 – 2014-03-28 06:02:54

您需要使用Ajax才能完成此任务,在第一个下拉列表中选择一个值后,您会通过ajaxnto另一个php文件发送请求,该文件会根据第一个选择给出最终的子类别。然后,Ajax将在您的第二个下拉列表中插入这个新数据。 您还可以查看jquery库中的post函数,这将使整个过程变得更加简单。