繁体   English   中英

Ajax 函数发送 GET 请求,但 PHP 从不处理它

[英]Ajax function sends GET request but PHP never process it

我正在尝试使用 Ajax 在 PHP 脚本中运行一个函数。 我的两个脚本文件如下:

获取.js:

$.ajax({
    url: "testPhp.php",
    data: { param1: "INITIALIZE"},
    type: "GET",
    context: document.body
}).done(function() {
    alert("DONE!");
}).fail(function() {
    console.log(arguments);
});

测试PHP.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 没有响应。 有任何想法吗?

它可能会失败,因为在函数initializeDatabase()$mysqli是一个未定义的变量。 尝试将$mysqli传递给initializeDatabase()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM