javascript - 用于检索 postgres 数据的 AJAX 函数不起作用

标签 javascript php jquery ajax postgresql

我有一个简单的 AJAX 函数绑定(bind)到一个应该执行 PostgreSQL 查询的按钮。但是,当我单击将 ajax 查询绑定(bind)到的按钮时,我得到的只是数据库连接成功的确认信息。 ajax 结果似乎没有发生任何事情(应该在 handleAjax() 函数中打印到控制台。我做错了什么?

这是 javascript 代码(使用 jquery):

$(document).ready(function() {

    function sendAjax() {

        $.ajax({
            url: "db/database.php",
            success: function (result) {
                handleAjax(result);
            }
        });
    }

    function handleAjax(result) {
        console.log(result);
    }

    $("#submit-button").on("click", sendAjax);

});

这是 database.php 的内容:

    <?php

    function dbconn(){

        ini_set('display_errors', 1); // Displays errors

        //database login info
        $host = 'localhost';
        $port = 5432;
        $dbname = 'sms';
        $user = 'postgres';
        $password = 'postgres';
        // establish connection
        $conn = pg_connect("host=$host port=$port dbname=$dbname user=$user password=$password");
        if (!$conn) {
            echo "Not connected : " . pg_error();
            exit;
        } else {
            echo "Connected.";
        }
    }

    $conn = dbconn();
    $sql = "SELECT * FROM numbers;";

    $result = pg_query( $sql ) or die('Query Failed: ' .pg_last_error());
    $count = 0;
    $text = 'error';
    while( $row = pg_fetch_array( $result, null, PGSQL_ASSOC ) ) {
        $text = $row['message'];
        //echo $text;
    }
    pg_free_result( $result );

?>

最佳答案

问题出在 database.php 文件中,您得到的只是“已连接”。因为你最后没有打印结果。 Ajax 只接收 php 文件的输出。

所以在你的 php 文件的末尾你应该添加:

echo $text;

你还应该删除 echo "Connected.";

关于javascript - 用于检索 postgres 数据的 AJAX 函数不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48022968/

相关文章:

javascript - jquery-ui slider 限制为使用大于 100 的数字选择列表奇怪的行为

使用错误密码登录 PHP 仍然有效

php - 检查未定义的常量

php - 使用 SQL 连接对大多数记录进行排序

javascript - 监听外部 JavaScript 文件中的变量更改

javascript - 如何通过 YouTube Player IFrame API 区分 "seek"和 "pause"

javascript - 如何在页面之间共享 jQuery 脚本?

javascript - 如何使用回调

javascript - 如何在每个字符后添加闪烁的 "_"?

javascript - 如何执行这个数组(jQuery Ajax)?