После смены с mysql на mysqli появилась ошибка Unexpected end of JSON input

340
13 марта 2017, 10:54

Начал переводить код с mysql на mysqli, все работало, но когда дело дошло до json, то почему-то он начал выдавать ошибки

Вот код запроса:

$.ajax({
            url: "js/ajax/other_main_articles_loader.php",
            type: "POST",
            data: ({lim: lim}),
            success: function (data) {
                if(data != "empty"){
                    data = JSON.parse(data);
                    console.log(data);
                    data.forEach( function(element, index) {
                        $("#other_articles .row").append("<div class='col-sm-4 col-md-3 single_article'><a href='http://solightside.com/it-novosti/"+ element.id +"-"+ element.title_trans +"/' class='img_div' style='background-image: url("+ element.image +");'><div class='dark'></div><div class='author'>"+ element.author +"</div><div class='date'>"+ element.date +"</div></a><a hfer='http://solightside.com/it-novosti/"+ element.id +"-"+ element.title_trans +"/'><h3>"+ element.title +"</h3></a></div><div class='line_5'></div>");
                    });
                }
            }
        });

А вот сам код обработчика:

<?php
    include("../../blocks/db_connect.php");
    include("../../blocks/translite.php");
    $lim = $_POST["lim"];
    $new_arr = array();
    $i = 0;
    $result = mysqli_query($link, "SELECT id, title, image, date, author FROM news ORDER BY date DESC LIMIT $lim, 4");
    while ($arr = mysqli_fetch_array($result, MYSQLI_ASSOC)) {
        $new_arr[$i]["id"] = $arr["id"];
        $new_arr[$i]["title"] = $arr["title"];
        $new_arr[$i]["title_trans"] = translite($arr["title"]);
        $new_arr[$i]["image"] = $arr["image"];
        $new_arr[$i]["date"] = $arr["date"];
        $new_arr[$i]["author"] = $arr["author"];
        $i++;
    }
    if(!empty($new_arr)) echo json_encode($new_arr);
    else echo "empty";
?>

Буду очень благодарен за любую помощь, спасибо.

Answer 1

Попробуйте у ajax дополнительно указать dataType: 'json', чтобы он знал, что ему данные в этом формате хотят передать. И вместо else echo "empty"; скорее всего тоже надо json отдать, например echo json_encode(['status' => 'error']);, а то, возможно, не одуплит.

READ ALSO
slick slider как убрать border

slick slider как убрать border

Возможно ли в примере ниже убрать border-right у 1 и 2, 4 и 5То есть, чтобы везде был border одинаковой ширины, а сейчас границы по центру в 2 раза

394
Передача дополнительного поля с input

Передача дополнительного поля с input

У меня есть форма, содержащая несколько полей inputЯ собираю значения из БД и вставляю их в эти input

289
Math.random predict

Math.random predict

Здравствуйте! Скажите, как угадать следующие хотя-бы пару чисел с такого кода javascript:

332
Управление state в react.js

Управление state в react.js

ПриветПомогите плиз разобраться с состояниями

350