データベースからデータを取得しようとすると、JavaScript が JSON を 2 回返します。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 倍を作成しています。SO 以下を取得する代わりに:
["act1","act2","act3"]
私は得ています:
["act1,"act2","act3"]["act1","act2","act3"]
毎回、2回呼び出されているようです。
また、PHPページに移動すると、期待どおりに次のものが返されます。
["act1","act2","act3"]
**編集
var_dump($name) 出力: array(6)=>{ [0]=>string(4)"act1" [1]=> string(4)"act2" [2]=> string(4)"act3" }
**編集
console.log(xmlhttp.responseText) は私に与えます:
JSON.parse: unexpected end of data
["act1","act2","act3"]