Не получается передать массив данных (из базы данных) методом ajax

230
26 мая 2017, 13:51
<?php //php страница qwe.php для обработки ajax запроса    
   require_once "blocks/head.php";
   connectDB();
   $add = $mysqli->query("SELECT * FROM teacher");  
   while($row = $add->fetch_assoc()){
        $lesson[] = $row["surname"];
   };
   $mysqli->close();    
   $json = json_encode($lesson);
   echo $json;
?>
<script> //сам ajax запрос
    $(document).ready(function() {
        $.get("qwe.php", function(data){                    
            console.log(data);      
        });
    });
</script>

В require_once "blocks/head.php" находится подключение jquery + функция connect():

<?php
   function connectDB(){
       global $mysqli;
       $mysqli = new mysqli("localhost", "login", "password", "nameDB");
       $mysqli->query("SET NAMES 'utf8'");
   };   
?>

В итоге в консоли выводит массив, но перед ним сначала какой-то html код и сам массив закодирован, выглядит это так:

  • пример того что выводит перед массивом:

<meta charset="utf-8"> <title><br /> <font size='1'><table class='xdebug-error xe-notice' dir='ltr' border='1'

  • в таком виде выводит массив:

["\u041a\u0443\u0440\u043e\u0432","\u0421\u043c\u043e\u0433\u0430\u043b\u0435\u0432\u0430","\u0421\u043f\u0438\u0440\u043e\u0432\u0430",

И ЕЩЕ НЕ МЕНЕЕ ВАЖНОЕ, если я укажу dataType: "json" например вот такой запрос:

$.ajax({
        url: "qwe.php",
        type: "POST",
        dataType: "json",
        success: function(data){
            console.log(data);  
        }
});

то в консоли вообще пусто, но массив так же закодирован (в браузере в "NETWORK" возвращает)

ПЕРЕЧИСЛЮ ТО ЧЕГО НЕ НУЖНО ПРЕДЛАГАТЬ И ТО ЧТО НЕ ПОМОГАЕТ:

var teacher = <?php echo json_encode($lesson); ?>;  - это мне не нужно
и еще не работают такие функции как JSON.parse, parse.JSON, $.JSONparse (выдает ошибку типа: Uncaught SyntaxError: Unexpected token < in JSON at position 0) я так понял из-за непонятного html кода в начале, он по ходу как массив воспринимается, я так и не понял, мучаюсь 2 дня и буду ОЧЕНЬ РАД ЕСЛИ КТО ЗНАЕТ РЕШЕНИЕ =)
Answer 1

Нашёл ответ на другом форуме:

$json = json_encode($lesson, JSON_UNESCAPED_UNICODE);
READ ALSO
Становление стилей с помощью скриптов

Становление стилей с помощью скриптов

Хочу сделать сайт для своей школыУ нас там компьютеры древние, как и браузера на них

308
Как изменить цвет background если подключен svg?

Как изменить цвет background если подключен svg?

Как изменить цвет background, если BG выступает svg, не меняя цвета самого svg?

511
Как сделать отображение данных с mongoose в html?

Как сделать отображение данных с mongoose в html?

Надо сделать отображение данных с mongoosaСделать выборку с схемы

283
Правила @media не работают в Chrome и Opera

Правила @media не работают в Chrome и Opera

Пишу сайт на OpenCart-е суть проболемы в том что написав адаптив под некоторые разрешения экранов заметил что эти правила работают только в Firefox,...

260