使用$ .post从jQuery UI对话框清空POST到PHP函数

时间:2010-05-20 15:40:33

标签: php ajax jquery-ui post

我正试图想出这个问题。也许有人可以帮助我,或指出我正确的方向。

我有一个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

我在这里做错了什么?

1 个答案:

答案 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')