我想發送一個ajax POST到一個php文件,但是php文件發送了一個「未定義索引」的通知,並且php文件似乎永遠不會收到我想要發送的值。我一直在尋找答案,爲什麼這不能正常工作,所以希望有人能給我一些見解。未定義的索引:ajax POST和/或php腳本中的錯誤?
我的javascript函數從html接收一個值,並接收正確的值。 (這是 「1」,在這種情況下)
function deleteMediaFromDatabase(val)
{
$.ajax({ url: 'deleteMediaFromDatabase.php',
data: {vals : val},
type: 'post',
success: function(output) {
alert(output);
},
error: function(request, status, error){
alert("Error: Could not delete");
}
});
}
這裏是我的PHP文件的一部分應接收帖子:
<?php
ini_set("display_errors", "On");
error_reporting(E_ALL);
$val = $_POST["vals"];
// create connection
$con = mysqli_connect(<stuff you don't care about>);
error_log($val . ' is the value', 3, "./error.log");
?>
我,但是正從PHP此錯誤消息:
Notice: Undefined index: vals in /xxx/xxx/htdocs/AdminPanel/deleteMediaFromDatabase.php on line 9
而且我的JavaScript總是輸出錯誤警報:「錯誤:無法刪除」
我知道這個問題1 on已被詢問並回答了很多次,但是除非我跳過一些小的東西,否則我的代碼對我來說看起來是正確的。 (但並不總是...)
你有沒有使用任何開發工具,以確保AJAX調用發佈正確的數據? – Machavity
是的,我已在谷歌瀏覽器(網絡部分)上使用了檢查元素功能,該功能已確認正在發送的是正確的數據,但狀態列爲(已取消)。 這是你可能提到的嗎? – ssrobbi
當我放入斷點並遍歷我的代碼時,它完美地工作。但是,當我拿出斷點並運行它時,就會出錯。這實際上是在表單內執行的。當提交按鈕被按下時,表單正在提交,這將更改數據庫。難道這是在表單內創造競爭條件的事實嗎? – ssrobbi