我想使用Ajax在PHP腳本中運行函數。我的兩個腳本文件如下:Ajax函數發送GET請求,但PHP從不處理它
get.js:
$.ajax({
url: "testPhp.php",
data: { param1: "INITIALIZE"},
type: "GET",
context: document.body
}).done(function() {
alert("DONE!");
}).fail(function() {
console.log(arguments);
});
testPhp.php:
<?php
define("SERVER_NAME", "localhost");
define("USERNAME", "root");
define("PASSWORD", "");
define("DATABASE", "myDB");
//Print database info
echo nl2br("Server Name: " . SERVER_NAME . "\nUsername: " . USERNAME . "\nPassword: " . PASSWORD);
//Connecting to database
$mysqli = mysqli_connect(SERVER_NAME, USERNAME, PASSWORD);
//Check database connection
if($mysqli === false) {
die ("\nCould not connect: " . mysqli_connect_error());
} else {
echo nl2br("\nConnected successfully! Host info: " . mysqli_get_host_info($mysqli));
}
//Function to execute database queries
function executeQuery($sql_query, $mysqli) {
if(mysqli_query($mysqli, $sql_query)){
echo nl2br("\n\nQuery executed successfully: $sql_query");
} else {
echo nl2br("\n\nERROR: Could not able to execute $sql_query. " . mysqli_error($mysqli));
}
}
function initializeDatabase() {
//Query to create flashcards database
$sql = "CREATE DATABASE IF NOT EXISTS " . DATABASE;
executeQuery($sql, $mysqli);
}
if(isset($_GET["param1"])) {
$arg = $_GET["param1"];
if($arg == "INITIALIZE") {
initializeDatabase();
}
}
testPhp.php包含其他方法,但沒有被稱爲呢。當我在函數外部運行代碼爲initializeDatabase()
的PHP腳本時,它會自動運行,它完美地工作。 alert()
也出現幾秒鐘後,我加載我的網頁,當腳本運行,所以它似乎是在退出之前的函數運行過程中做的事情。但是,當我使用Ajax GET請求時,似乎PHP沒有響應。有任何想法嗎?
控制檯錯誤?將錯誤處理添加到Ajax – mplungjan
@mplungjan運行時沒有看到任何錯誤。 – dikiwuyvps911
'$阿賈克斯({ 網址: 「testPhp.php」, 數據:{參數1: 「初始化」}, 類型: 「GET」, 方面:document.body的 })。完成(函數(){ (失敗);}看看失敗函數是否被調用,並找出你在php腳本中的失敗 – mtizziani