2010-05-20 100 views
2

我有一段時間試圖找出這一個。也許有人可以幫助我,或者指引我走向正確的方向。

我有一個jQuery UI對話框,當用戶點擊圖像時彈出。該對話框顯示一個包含2個下拉窗口的表單。 「部門」和「組」。分組下拉菜單被禁用,直到在「分部」下拉菜單中選擇某個分組爲止。

當用戶選擇一個部門時,我做了一個POST到php的功能,然後啓用並填充組下拉菜單。夠簡單了...

<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,不過,螢火清楚地表明提交後的數據:

Screenshot of FireBug showing POST data http://dl.dropbox.com/u/3903355/post.png

我到底錯在這裏做什麼?

+0

它顯示數據正在提交,但它顯示爲響應? – Galen 2010-05-20 15:44:46

+0

如果你'print_r($ _ REQUEST);' – thetaiko 2010-05-20 15:46:34

+0

你看到了什麼?你是否嘗試過從標準表單發佈?即''form action =「/ am/ldap/getDepartmentGroups.php」method =「post」>' – DisgruntledGoat 2010-05-20 15:47:20

回答

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僅僅指剛調用反正:

$.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')

+0

提交按鈕正常發佈工作正常,但添加更改'$ .post'到'$ .ajax'不會改變任何東西。我仍然空着'POST' – solefald 2010-05-20 16:06:44

+0

'$ _POST'在CI上運行良好,實際上。我用它所有的時間。我在這種情況下不使用'$ this-> input-> post()'是因爲它只能輸出單個值,而'$ _POST'則會轉儲整個'POST'數組。 – solefald 2010-05-21 22:13:29