gpt4 book ai didi

javascript - JSON 返回重复项

转载 作者:行者123 更新时间:2023-11-28 01:49:37 25 4
gpt4 key购买 nike

当我尝试从数据库中提取数据时,我的 JavaScript 返回 JSON 两次。 为什么我的 JSON 会以这种方式返回?

PHP:

<?php
require ('functions.inc');
dbconn(); //establish my db connection
mysql_selectdb("acts");
$query = mysql_query("SELECT * from actInfo");
while ($row = mysql_fetch_assoc($query)){
$name = $row[ActName];
}
$json=json_encode($name);
echo $json;
?>

Javascript:

function getActNames(){
if (windows.XMLHttpRequest)
{
xmlhttp=new XMLHttpRequest();
}
else
{
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function(){
var json = xmlhttp.responseText;
var parseV = JSON.parse(json);
$("#somediv").append(parseV);
}
xmlhttp.open("POST","PHP/actMgmt.php",true);
xmlhttp.send();
}

我通过以下方式在 HTML 中调用它:

<p class = "button" onclick= "getActNames();return false;">Some Button </p>

我的 JSON 调用正在创建 2 倍所请求的记录。所以而不是得到以下内容:

["act1","act2","act3"]

我得到:

["act1,"act2","act3"]["act1","act2","act3"]

好像每次都会调用两次。

另外,当我刚刚进入 PHP 页面时,它只返回以下内容,就像我期望的那样:

["act1","act2","act3"]

**编辑

var_dump($name) 输出: 数组(6)=>{ [0]=>字符串(4)“act1”[1]=>字符串(4)“act2”[2]=>字符串(4)“act3”}

**编辑

console.log(xmlhttp.responseText) 给我:

JSON.parse: unexpected end of data
["act1","act2","act3"]

最佳答案

我现在看到了。我将来强烈建议您使用像 jQuery 这样的框架以避免这种情况。编写自己的 AJAX 函数往往会导致这样的问题。您的 AJAX 调用未检查正确的状态。它只是在寻找任何返回。因此,每次您收到数据包时,它都会启动您的匿名功能。

将代码更改为这样,您应该只得到一个数组

xmlhttp.onreadystatechange=function() {
if (xmlhttp.readyState==4 && xmlhttp.status==200) {
var json = xmlhttp.responseText;
var parseV = JSON.parse(json);
$("#somediv").append(parseV);
}
}

关于javascript - JSON 返回重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19850060/

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