Показать сообщение отдельно
  #3 (permalink)  
Старый 25.12.2015, 01:34
Профессор
Отправить личное сообщение для hoax Посмотреть профиль Найти все сообщения от hoax
 
Регистрация: 20.09.2012
Сообщений: 151

В том-то и дело, что переменная не пустая, если возвращать результат ответа json_encode, без преобразования JSON.parse, то echo вернет строку вида : '{one:"one",...}', но к сожалению с ней ничего сделать не получается.


Специально создал два новых файла, без включений :

<html>
<body>

<div id="id01">er</div>

<script>
var xmlhttp = new XMLHttpRequest();
var url = "testphp.php";

xmlhttp.onreadystatechange = function() {
    if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
        var myArr = JSON.parse(xmlhttp.responseText);
        myFunction(myArr);
    }
};
xmlhttp.open("GET", url, true);
xmlhttp.send();

function myFunction(arr) {
    var out = "";
    var i;
    for(i = 0; i < arr.length; i++) {
        out += arr[i].id;
    }
    document.getElementById("id01").innerHTML = out;
}
</script>

</body>
</html>


header("Access-Control-Allow-Origin: *");
header("Content-Type: application/json; charset=UTF-8");



$conn = new mysqli('localhost', 'root', '', 'cms');

$result = $conn->query("SELECT* FROM materials");

$o = null;
while($rs = $result->fetch_array(MYSQLI_ASSOC)) {
    $o[] = $rs;
}


$conn->close();

echo json_encode($o);


При таком раскладе, все ок, результат json можно разобрать и преобразовать в объект-сущности. Результат данного скрипта - 1234567...номера ID столбцов вообщем.

Но как только в серверном файле указать include 'test.php' в котором ничего кроме 'echo 'простого текста';' нету, ajax отказывается возвращать предыдущий результат и возвращает echo включенного файла.
Ответить с цитированием