gpt4 book ai didi

javascript - 将 php 变量发送到 HTML 页面中的 javascript Ajax

转载 作者:行者123 更新时间:2023-11-30 16:34:55 25 4
gpt4 key购买 nike

我有一个带有 javascript 函数的 HTML 页面:

<script type="text/javascript">
/* <![CDATA[ */
function voteCounter(messageID)
{
$.get("./_vote/counter_ajax.php?messageID="+messageID, function(data){
alert(data);
});
}
/* ]]> */
</script>

我的 PHP 文件“counter_ajax.php”:

<?php

require "../lib/config.php";

$STB = $config['dbTableNames']['votes'];

$DBServer = $config['dbConnection']['host'];
$DBUser = $config['dbConnection']['user'];
$DBPass = $config['dbConnection']['pass'];
$DBName = $config['dbConnection']['name'];

$messageID = $_GET['messageID'];

$db = new mysqli($DBServer, $DBUser, $DBPass, $DBName);

$resultUp = $db->query("SELECT SUM(voteUp) AS voteUp FROM $STB WHERE messageID = '$messageID'")->fetch_object()->voteUp;
$resultDown = $db->query("SELECT SUM(voteDown) AS voteDown FROM $STB WHERE messageID = '$messageID'")->fetch_object()->voteDown;

echo json_encode("Positive: " . $resultUp . " .... Negative: " . $resultDown);

?>

如果我在浏览器中运行 PHP 文件是有效的,结果会充满文本和变量:

Positive: 3 .. Negative: 2

但警告框中的 HTML 响应是这样的,没有变量:

Positive: .. Negative:

什么是正确的方法?

最佳答案

JQuery Ajax 函数旨在根据服务器在响应 header 中发送的矿类型/内容类型来识别响应类型(html、json、xml 等)。

在您的情况下,您没有设置任何内容类型,因此 JQuery 函数无法计算出 json 响应。

在 PHP 方面你可以这样做:

$data = /** whatever you're serializing **/;
header('Content-Type: application/json');
echo json_encode($data);

或者在 jQuery 端,您可以使用 jQuery.getJSON(),它始终假定服务器响应是 json 格式。

在 jQuery.get() 中还有一个选项可以在第四个参数中设置数据类型,例如:

 jQuery.get( url [, data ] [, success ] [, dataType ] )

关于javascript - 将 php 变量发送到 HTML 页面中的 javascript Ajax,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32836898/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com