2010-09-07 120 views
0

擁有了一塊傳統的Web應用程序的我的工作,我不斷收到以下錯誤一個有趣的問題: Notice: Undefined offset: 0,1,2,3,等等等等未定義偏移誤差PHP

我有一個jQuery tablesorter根據用戶輸入對數據進行排序。此錯誤只有出現在第2+頁上的結果中。

因此,如果我去更新第1頁上的結果,一切都很好,我沒有得到上述的偏移誤差。但是,除2以外的任何頁面都會引發上面的偏移錯誤。

以下是PHP代碼生成錯誤:

if(count($_POST)>0) { 
if ($_POST['action'] == "update"){ 
    // find out how many records there are to update 
    $size = count($_POST['review_id']); 

    // start a loop in order to update each record 
    $i = 0; 
    while ($i < $size) { 
    // define each variable 
    $approved = $_POST['approved'][$i]; 
    $banned = $_POST['banned'][$i]; 
    $review_id = $_POST['review_id'][$i]; 
    //var_dump($approved); 
    //var_dump($banned); 
    //var_dump($review_id); 
    if (isset($_POST['delete'][$i])){ 
    $delete = 1; 
    } else { 
    $delete = 0; 
    } 

的$批准,禁止$ $和REVIEW_ID是導致錯誤的人。當結果在頁面上時,var_dump似乎輸出字符串。但是,在任何大於1的頁面上,所有var_dump輸出都分別爲NULL NULL NULL。

我與螢火蟲檢查,所有的選擇形式適當命名<select name="approved[4]" id="select2">甚至2 <select name="approved[79]" id="select2">

任何幫助頁面上的那些將不勝感激。

編輯:如果我改變傳遞到第一頁的行數量,它工作正常。我的意思是:如果我讓PHP在第一頁上顯示50行而不是當前的25行,它會正確更新。因此,第1頁上的任何數量的結果都會更新,任何可能流向第2頁及以後的結果 - 都不會!

+0

這聽起來很愚蠢,但你有沒有嘗試簡單地檢查一下,看看值是否在'$ _POST ['approved [4]']'? – 2010-09-07 02:54:54

+0

檢查我最近的編輯。它工作正常 - 只要數據在第1頁。 – 2010-09-07 02:56:46

+0

您是否嘗試過var_dump:$ _POST ['approved'],$ _ POST ['banned']和$ _POST ['review_id']? – Greyes 2010-09-07 03:01:52

回答

1

該錯誤表示您沒有任何關鍵數據。

  1. 執行POST的var轉儲並查看是否存在變量nam被覆蓋的地方。

  2. 請在頁面更改後檢查select語句是否包含在<form> </form>中。您可以執行Web開發人員工具欄>查看錶單信息。

+0

已經做了一個var_dump的職位。而且,第二頁也包含在表單標籤之間。感謝您的幫助。 – 2010-09-07 03:11:33

+0

如果var_dump($ _ POST)爲空,那麼這個PHP文件將無濟於事。問題可能在於表單存在的文件中。 – Stewie 2010-09-07 03:22:07

+0

$ _POST不爲空。它會爲兩個頁面返回完全相同的值。 – 2010-09-07 03:25:03