Я запрашивая данные из моего data.php
файла со следующей просьбой:Почему мой запрос xmlhtpp возвращает пустой массив?
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);
опубликовать полный код АЯКС –
'xmlhttp.send («запрос = getchartdata &»+«графика =»+ chart + '&' + 'key =' + key); 'недостаточно, чтобы понять, где проблема. –
вы печатаете свою полную переменную 'post' в' data.php' и видите, какое значение у вас есть в переменной 'post' –