У меня проблема с XHR и PHP. У меня есть страница html, которая динамически изменяется в зависимости от пользовательского ввода, когда им нравятся их изменения, они сохраняют sh, который javascript отправляет XHR в файл PHP, чтобы обработать данные и поместить их в базу данных. Javascript также ПОЛУЧАЕТ данные из БД при загрузке страницы. Мой код прекрасно работает на моем локальном хосте (сервере WAMP), но когда я загружаю его на работающий сервер, я получаю только оператор PHP echo в моем файле PHP. Я не получаю ошибок нигде. Вот мой javascript код:
function displayCards() {
const xhr = new XMLHttpRequest();
const url = 'https://full-link-to-my.php';
xhr.onreadystatechange = () => {
if(xhr.readyState === XMLHttpRequest.DONE) {
document.getElementById('testWall').innerHTML = xhr.response;
}
}
xhr.open('GET', url);
xhr.send();
}
, а вот мой PHP:
$con = db_connect();
if ($con->connect_error) echo "Gremlins have eaten the database because " . $con->connect_error;
$query = "SELECT * FROM cards";
$result = $con->query($query);
if (!$result) echo "Could not gather the cards because " . $con->error;
echo "<div class='row'>";
$i=1;
while($row = $result->fetch_assoc()) {
if($i<=3) {
//draw a colum
echo "<div class='col-sm-4'>
<div class='card shadow' style='background-color:".$row['cardBg'].";color:".$row['cardText'].";'>
<div class='card-header'>
<h4 class='card-title'>Happy Birthday, " . $row['cardTo'] . "!!</h4>
</div>
<div class='card-body'>
<img src='images/".$row['cardImg'].".png' class='img-fluid' alt='Note' />
</div>
<div class='card-footer'>
<p>" . $row['cardMsg'] . "</p>
<p class='text-right'>--" . $row['cardFrom'] . "</p>
</div>
</div>
</div>";
//Add 1 to $i
$i++;
} else {
//Reset $i to 1 otherwise this is 4
$i=1;
//End the row
echo "</div>";
//Start a new row
echo "<div class='row pt-3'>";
//draw a column and card
echo "<div class='col-sm-4'>
<div class='card shadow' style='background-color:".$row['cardBg'].";color:".$row['cardText'].";'>
<div class='card-header'>
<h4 class='card-title'>Happy Birthday, " . $row['cardTo'] . "!!</h4>
</div>
<div class='card-body'>
<img src='images/".$row['cardImg'].".png' class='img-fluid' alt='Note' />
</div>
<div class='card-footer'>
<p>" . $row['cardMsg'] . "</p>
<p class='text-right'>--" . $row['cardFrom'] . "</p>
</div>
</div>
</div>";
//Add 1 to $i to keep the count to 3 correct
$i++;
}
}
echo $data;
mysqli_close($con);
Единственная вещь в PHP, которая отправляется обратно на javascript, это эхо до начала l oop. Есть идеи, почему это не работает? Спасибо