我想調用一個名爲functions.php的php文件,其中我有多個相關的函數(所有數據庫更改爲賬戶,即添加,編輯,刪除) 。我一直在努力,因爲AJAX調用似乎很好,但從服務器返回的響應是空的(content-lenght:0)。我回到了原點,只是使用AJAX發送數據到一個只包含php代碼來處理這個調用(即沒有函數)的php文件,並且它工作正常。只要我將這個簡單的語句包裝到一個函數中,它就會再次失敗。所以我正在做的事情導致PHP不會發送一個響應時,我把它包裝在一個函數。多個PHP函數在同一個文件中的問題
您是否必須從ajax腳本或表單元素中的某處以某種方式調用特定的PHP函數?如果有多個函數,php文件如何知道您在ajax調用中要求哪個函數?或者只是通過將$ _POST元素與正在發送的數據進行匹配來對其進行排序,而不管$ _POST元素在哪個函數中?
我懷疑我的PHP代碼是難辭其咎:
function delete_account(){
require(ROOT_PATH . "/inc/database.php");
$deleteAccount = $_POST['accountName'];
try {
$results = $db->prepare("DELETE FROM account WHERE account_id_PK = ?");
$results->bindValue(1, $deleteAccount);
$results->execute();
} catch(Exception $e) {
echo "ERROR: Data could not be removed from the database. " . $e;
exit;
}
return;
}
此外,當我按下提交按鈕,我的Ajax調用被解僱了,它會立即返回在瀏覽器中成功的消息,並作爲我在我的谷歌開發工具窗口中觀看網絡選項卡,成功消息顯示在php文件被加載之前。我試過設置異步:false。
添加AJAX代碼:
function deleteAccount(){
event.preventDefault();
var accountName = $('.account_name').filter(":selected").attr("name");
$.ajax({
type: "POST",
url: 'inc/functions.php',
data: {accountName:accountName},
async: false,
success: function(response){
$('#results').html(response + " has been deleted.");
}
});
};
您將您的ajax調用參數發送到php文件。所以你也可以設置一些「標誌參數」,如?delete = true&id = 1。如果刪除isset = true - >調用delete_account() 用這種方法,你可以從你的ajax調用發送許多不同的參數到你的PHP文件,並選擇你想要執行的功能 – KURN