我正试图想出这个问题。也许有人可以帮助我,或指出我正确的方向。
我有一个jQuery UI对话框,当用户点击图片时会弹出该对话框。该对话框显示一个带有2个下拉窗口的表单。 “部门”和“团体”。组下拉列表已禁用,直到“dept”下拉菜单中选择了某些内容。
当用户选择部门时,我会对php功能进行POST,然后启用并填充组下拉列表。够简单......
<select name="dept" id="dept_select" onchange="getDeptGroups(this.value);">
// Some data here
</select>
JS功能:
function getDeptGroups(dept)
{
// This alert works and displays department name.
//alert(dept);
$.post("/am/ldap/getDepartmentGroups.php", {
department: dept },
function(data){
alert(data);
});
}
最后在php页面中我做了
<? print_r($_POST); ?>
并以空数组结束。
Array
(
)
Chrome和Firefox都会出现这种情况,但FireBug清楚地显示了提交的帖子数据:
Screenshot of FireBug showing POST data http://dl.dropbox.com/u/3903355/post.png
我在这里做错了什么?
答案 0 :(得分:0)
首先,验证PHP方面是否按预期工作。设置一个静态表单,发布到该页面并查看输出结果:
<form action="/am/ldap/getDepartmentGroups.php" method="post">
<select name="dept">
<option value="extern">External</option>
...etc
</select>
<input type="submit" value="Submit">
</form>
如果你仍然得到一个空白数组作为输出,那么PHP和/或服务器就会出现问题。
否则,也许尝试使用jQuery ajax函数,因为无论如何调用post
jsut调用:
$.ajax({
type: 'POST',
url: '/am/ldap/getDepartmentGroups.php',
data: { department: dept },
success: function(data) {
alert(data);
}
});
编辑:啊,你在评论中说你正在使用CodeIgniter。我相信CI删除了$_POST
数组,您需要使用$this->input->post
代替。要获取department
变量,您需要编写$this->input->post('department')