2017-03-08 7 views
-1

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が応答しないように見えます。何か案は?

+0

コンソールエラー? Ajaxにエラー処理を追加する – mplungjan

+0

@mplungjan実行時にエラーは発生しません。 – dikiwuyvps911

+0

'$アヤックス({ URL: "testPhp.php"、 データ:{PARAM1:} "初期化"、 タイプ: "GET"、 文脈:document.body })。(関数(){行います{fail.function(){console.log(arguments);}); 'fail関数が呼び出されたかどうかを調べ、PHPスクリプトの失敗を見つけます。 – mtizziani

答えて

-1

initializeDatabase()の機能では、$mysqliが未定義の変数なので、失敗する可能性があります。 $mysqliinitializeDatabase()に渡してみてください。

+0

これを試しましたが、残念ながら問題は解決しませんでした – dikiwuyvps911

関連する問題