2017-03-08 84 views
-1

我想使用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沒有響應。有任何想法嗎?

+0

控制檯錯誤?將錯誤處理添加到Ajax – mplungjan

+0

@mplungjan運行時沒有看到任何錯誤。 – dikiwuyvps911

+0

'$阿賈克斯({ 網址: 「testPhp.php」, 數據:{參數1: 「初始化」}, 類型: 「GET」, 方面:document.body的 })。完成(函數(){ (失敗);}看看失敗函數是否被調用,並找出你在php腳本中的失敗 – mtizziani

回答

-1

它可能會失敗,因爲在函數initializeDatabase()中,$mysqli是未定義的變量。嘗試通過$mysqliinitializeDatabase()

+0

剛剛嘗試過,但不幸的是它沒有解決問題 – dikiwuyvps911