2016-10-03 92 views
0

我從這個AJAX調用中獲得undefined index(return data)。我在這裏做錯了什麼?請糾正我。AJAX請求在PHP中提供'undefined index'錯誤

$(document).ready(function() { 
    $('#something').click(function() { 
     edit(1, 'abc', 'xyz'); 
    }); 

    function edit(id, column, text) { 
     $.ajax({ 
      url: "edit.php", 
      method: "POST", 
      data: { 
       id: id, 
       text: text, 
       column: column 
      }, 
      dataType: "text", 
      success: function(data) { 
       console.log(data); 
      } 
     });  
    } 
}); 

edit.php

echo $_POST["id"]; 

我得到這個在控制檯:在Ç。ID:

注意:未定義指數\ XAMPP \ htdocs中\數據表\ edit.php on line

+0

這錯誤意味着問題出在你的PHP代碼,而不是JS。檢查第2行的'edit.php'文件。第2行的 –

+0

此代碼存在echo $ _POST [「id」] – EaBangalore

+0

是「edit.php」的路徑是否正確?是:你有多個'edit.php'文件,你試圖通過任何機會發布信息? – RamRaider

回答

0

我認爲這個問題是因爲你寫json數組鍵的方式。

嘗試使用雙引號從數據JSON的鑰匙,就像這樣:

data:{"id":id, "text":text, "column":column} 

或變量和密鑰使用不同的名稱。

+0

沒有答案是正確的 – EaBangalore

+0

嗨!我應該刪除這個答案嗎? – mihutz

+0

不要刪除,如果你覺得它是正確的 – EaBangalore

0

我認爲url:「edit.php」在您的服務器中沒有訪問權限。

通常情況下,如果你在你的服務器本地;所以你改變你的網址爲:

「」。

$.ajax({ 
      url:"http://localhost/yourproject/edit.php", 
      method:"POST", 
      data:{id:id, text:text, column:column}, 
      dataType:"text", 
      success:function(data){ 
       console.log(data); 
      } 
     });  
0

試試這個,如果你想用PHP $ _POST來獲取它,你可以添加內容類型的json。我不知道這個,但它的作品在我的角度

function edit(id, column, text) { 
    $.ajax({ 
     url: "edit.php", 
     method: "POST", 
     data: { 
      id: id, 
      text: text, 
      column: column 
     }, 
     contentType: "application/json; charset=utf-8", 
     dataType: "json", 
     success: function(data) { 
      console.log(data); 
     } 
    });  
} 
0

請使用此代碼嘗試

/* start */ 
$(document).ready(function() { 

$('#something').click(function() { 

    var sendData = { 
     url : '1', 
     method : 'abc', 
     column : 'xyz' 
    }; 

    edit(sendData); 

}); 

function edit(id, column, text) { 
    $.ajax({ 
     type: "POST", 
     url: "edit.php", 
     data: sendData, 
     success: function(response){ 
      console.log(data); 
     } 
    }); 
} 
}); 

/* end */ 
0

很多鬥爭的我得到了我的答案後。

even though after specifying method as POST ajax is sending it as a GET 

(爲什麼?我不知道是否有人知道請張貼您的答案)。

只有改變ID的確在(edit.php)

編輯。php

echo $ _GET ['id'];

2

嘗試使用

類型: 「POST」

,而不是

方法: 「POST」

...$.ajax({ 
     url: "edit.php", 
     type: "POST", 
     data: { 
      id: id, 
      text: text, 
      column: column 
     }..... 

它仍然類這是一個GET請求?我認爲這是因爲你的jQuery版本。

docs

type (default: 'GET') 
Type: String 
An alias for method. You should use type if you're using versions of jQuery prior to 1.9.0. 
是否使用的是JQuery的版本
1

?嘗試改變

method: "POST", 

type: "POST",