我正在使用以下请求从data.php
文件中请求数据:
xmlhttp.send('request=getchartdata&'+'chart='+chart+'&'+'key='+key);
以下是data.php
的内容:
if ($_POST["request"] == "getchartdata") {
/*Removing dash from key*/
$key = str_replace("-", "", $_POST["key"]);
if ($_POST["chart"] == "associationEvolutionSubventions") {
$result = $conn->prepare("SELECT grantYear, grantAmount FROM granttoassociation WHERE HEX(grantReceiver) = ? ");
/*grantReceiver is in binary*/
}
$result->execute(["{$key}"]);
while($rs = $result->fetch()) {
if ($outp != "") {
array_push($outp,$rs);
}
}
}
$outp = json_encode($outp);
echo($outp);
但是,我在xmlhttp.responseText
中得到一个空数组。
与MySQL数据库的连接不是问题(另一个xmlhtpp请求正确地返回数据)。有几点我不确定我的代码:
$result->execute(["{$key}"]);
这里的语法是否正确?HEX(grantReceiver)
如果grantReceiver是二进制文件,这样做是否正确?$key = str_replace("-", "", $_POST["key"]);
这是删除破折号的正确语法吗?编辑:这是所要求的完整AJAX代码。
xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
console.log(xmlhttp.responseText);
}
};
xmlhttp.open("POST", "wp-content/plugins/mygaloochart/data.php", true);
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlhttp.send('request=getchartdata&'+'chart='+chart+'&'+'key='+key);
答案 0 :(得分:0)
重新排列代码。在打开请求和设置请求标题后,您应该听取onreadystate(以下是您修改过的代码):
xmlhttp = new XMLHttpRequest();
xmlhttp.open("POST", "wp-content/plugins/mygaloochart/data.php", true);
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
console.log(xmlhttp.responseText);
}
};
xmlhttp.send('request=getchartdata&'+'chart='+chart+'&'+'key='+key);