将Jquery函数参数作为动态控制的下拉选项的一部分传递给PHP函数

时间:2017-07-21 15:03:30

标签: php ajax

当选择父下拉列表中的某个选项时,尝试动态控制第二个下拉列表中可用的选项时遇到问题。在初始下拉列表中选择的选项的值不会传递到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()

2 个答案:

答案 0 :(得分:2)

您需要使用$_GET['project']访问参数,请更改此项:

$subTypeList = $thisEventDB->getSubTypeOnProjectID($_GET['project']);

答案 1 :(得分:0)

你为什么不这样做:

  • 每个选项在选择中都有一个值,从0到63对吗?
  • 创建jQuery事件以选择(click,focus)选项,添加选项值以选择

或者甚至更好,我认为可以通过$('input [name =“project”]')获得select的选定值.val()