当选择父下拉列表中的某个选项时,尝试动态控制第二个下拉列表中可用的选项时遇到问题。在初始下拉列表中选择的选项的值不会传递到PHP函数,该函数从数据库中检索适用的选项。我是PHP和ajax的新手,所以只知道一些选项,但到目前为止无法解决。 初始下拉选项的值是1到63.我已经尝试使PHP函数参数名称与ajax函数参数名称相同并尝试了PHP变量的组合,但是将值“0”传递给PHP函数而不是从1到63,所以第二次下拉列表每次都填充错误的选项。
父下拉列表使用Ajax函数,该函数在更改所选选项时调用:
<select onchange="getOptionValues(this.value)">
这是ajax fucntion:
function getOptionValues(project)
{
$.ajax({
url: 'subtypelist.php?project=' + project,
success: function(data) {
$("#subtype").html(data);
}
});
}
这将调用getSubTypeOnProjectID()
(在PHP类文件中)并使用与{a}参数相同的getSubTypeOnProjectID()
参数处理PHP文件(subtypelist.php)。
function getSubTypeOnProjectID($sub) {
$sql= 'SELECT EST_Index as ID, EST_Text as TEXT FROM EventSubType where EST_EventType = 2 and EST_ProjectID = ?';
return $this->openSql($sql, array($sub));
}
$subTypeList = $thisEventDB->getSubTypeOnProjectID(project);
foreach ($subTypeList as $option)
echo '<option value="'. $option[ID] . '">' . $option[TEXT] . '</option>';
我知道正确的值是通过URL subtypelist.php?project = 10传递给subtypelist.php而是检索选项值“0”,所以它更像是subtypelist.php?project = 0。如何将project
参数值传递到getSubTypeOnProjectID()
?
答案 0 :(得分:2)
您需要使用$_GET['project']
访问参数,请更改此项:
$subTypeList = $thisEventDB->getSubTypeOnProjectID($_GET['project']);
答案 1 :(得分:0)
你为什么不这样做:
或者甚至更好,我认为可以通过$('input [name =“project”]')获得select的选定值.val()