PHPスクリプトでAjaxを使用して関数を実行しようとしています。次のように私の2つのスクリプト・ファイルは、次のとおりです。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()
は、スクリプトが実行されるときに私のWebページをロードしてから数秒後に発生するので、終了する前に関数の実行中に何かをしているようです。しかし、私がAjax GETリクエストを使用すると、PHPが応答しないように見えます。何か案は?
コンソールエラー? Ajaxにエラー処理を追加する – mplungjan
@mplungjan実行時にエラーは発生しません。 – dikiwuyvps911
'$アヤックス({ URL: "testPhp.php"、 データ:{PARAM1:} "初期化"、 タイプ: "GET"、 文脈:document.body })。(関数(){行います{fail.function(){console.log(arguments);}); 'fail関数が呼び出されたかどうかを調べ、PHPスクリプトの失敗を見つけます。 – mtizziani