我有一个简单的 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/