gpt4 book ai didi

php - ajax接收来自php的响应但不能与ajax一起使用

转载 作者:行者123 更新时间:2023-11-29 16:36:19 26 4
gpt4 key购买 nike

当我使用 ctrl+shift+I checkin google chrome 时,我有以下 php 和 ajax 代码在网络选项卡中,它将响应显示为 <{"response" : "2"}但此响应不能分配给 <h3>将 id 作为响应

我的 php 是

<<?php

$id = $_POST['reccount'];
/* Attempt MySQL server connection. Assuming you are running MySQL
server with default setting (user 'root' with no password) */
$link = mysqli_connect("localhost", "root", "", "testsite");
// Check connection
if($link === false){
die("ERROR: Could not connect. " . mysqli_connect_error());
}
// Attempt update query execution
$sql = "SELECT * FROM paper WHERE ID=$id";
if(mysqli_query($link, $sql)){

$result = mysqli_query($link, $sql);
while($row = mysqli_fetch_array($result)) {
$data['response']= $row['response'];
$data['ansnum'] = $row['q_no'];
}
echo json_encode($data);
} else {
echo "ERROR: Could not able to execute $sql. " . mysqli_error($link);
}

// Close connection
mysqli_close($link);
?>

而ajax是

 $.ajax({
type:"POST",
url:"<?php echo base_url();?>/shortfiles/loadans.php",
data: {reccount: reccount},
dataType:"JSON",
success: function(data){
alert (data.response);
$('#respond').text(data.response);
}


}) ;

html 是

<h3 ID="respond"style="margin-left:30px;">response</h3>

最佳答案

如果您的 PHP 的响应是:

<{"response" : "2"}

这将是一个格式不正确的 JSON 字符串。这将由额外的 < 创建你在文档的开头有。我建议您使用以下 PHP Opener:

<?php

这应该可以解决问题,因此 JSON 响应将是:

{"response" : "2"}

此时它将被正确解析。

示例

<?php
$id = (int)$_POST['reccount'];
$link = mysqli_connect("localhost", "root", "", "testsite");
header('Content-Type: application/json');
if($link === false){
die("{\"error\": \"Could not connect. " . mysqli_connect_error() . "\"}");
}
$sql = "SELECT * FROM paper WHERE ID=$id";
if(mysqli_query($link, $sql)){
$result = mysqli_query($link, $sql);
while($row = mysqli_fetch_array($result)) {
$data['response']= $row['response'];
$data['ansnum'] = $row['q_no'];
}
echo json_encode($data);
} else {
echo "{\"error\": \"Unable to execute $sql. " . mysqli_error($link) . "\"}";
}
mysqli_close($link);
?>

在我的示例中,我将 POST 数据转换为 Integer,以帮助确保恶意用户无法发送数字以外的任何内容。我也只发送 JSON 数据,即使发送错误时也是如此。使用header()帮助定义浏览器的数据。

$.ajax({
type:"POST",
url:"<?php echo base_url();?>/shortfiles/loadans.php",
data: {reccount: reccount},
dataType:"JSON",
success: function(data){
console.log(data);
if(data.error !== undefined){
alert(data.error);
} else {
$('#respond').text(data.response);
}
}
});

希望有帮助。

关于php - ajax接收来自php的响应但不能与ajax一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53583101/

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