Uncaught SyntaxError: Неожиданный токен <в JSON в позиции 0 в Function.parse [как parseJSON] (<anonymous>) в Object.success (script.js: 14) - PullRequest
0 голосов
/ 16 декабря 2018

Я связываюсь с поиском пользователя из базы данных, включающей varchar и изображение, каждый раз, когда я печатаю в поле поиска, эта ошибка появляется в консоли. Uncaught SyntaxError: Неожиданный токен <в JSON в позиции 0 </p>

Вот мой jsкод

$(function(){
    $('#q').keyup(function(){
        var q = $(this).val();
        var html = '';
        $('.form-wrapper').find('.result-wrapper').remove();

        if (q !== '' && q !== null) {

            $.ajax({
                url: 'suggestions.php',
                data: {q: q},
                success: function (response){
                    /*var reader = new FileReader();*/
                    response = $.parseJSON(response);

                    html = generateDOM(response);
                    $('.form-wrapper').append(html);

                },
                error: function(response){
                    console.log(response);
                }
            });

        }

    });
});

function generateDOM(response){
    var html = '<div class="result-wrapper"/>';
    html += '<ul>';
    $.each(response, function(index, value){
        html += '<li><img src="'+value.q_links+'"/><a href="'+value.q_links+'">'+value.q_title+'</a></li>';
    });

    html += '</ul>';
    html += '</div>';

    return html;
}

и подключение к коду БД

<code><?php

function connect(){
    $connection = mysqli_connect('localhost', 'root', '', 'img');
    if (!$connection){
        die('Error: Failed to connect DB!!');
    }
    return $connection;
}

function get_suggestions( $q ){
    $connection = connect();
    $sql = "SELECT `id`, `q_image`, `q_title`, `q_links` FROM `users` WHERE (`q_title` LIKE '%$q%')";
    $result = mysqli_query($connection, $sql);
    if ( mysqli_num_rows($result) ){
        return mysqli_fetch_all($result, MYSQLI_ASSOC);
    }
    return false;
}

function debug($arg){
    echo '<pre>';
    print_r($arg);
    echo '
';выход;}?>

, пожалуйста, помогите мне решить эту проблему

скриншот ошибки

https://drive.google.com/file/d/1S72_AmxILPZHA7nZZ0g4ZZhx0OxD9wjp/view?usp=sharing

1 Ответ

0 голосов
/ 16 декабря 2018

Измените вашу функцию php на

function get_suggestions( $q ){
    $connection = connect();
    $sql = "SELECT `id`, `q_image`, `q_title`, `q_links` FROM `users` WHERE (`q_title` LIKE '%$q%')";
    $result = mysqli_query($connection, $sql);
    if ( mysqli_num_rows($result) ){
        return json_encode(mysqli_fetch_all($result, MYSQLI_ASSOC));
    }
    return false;
}

А код ajax на

$(function(){
    $('#q').keyup(function(){
        var q = $(this).val();
        var html = '';
        $('.form-wrapper').find('.result-wrapper').remove();

        if (q !== '' && q !== null) {

            $.ajax({
                url: 'suggestions.php',
                data: {q: q},
                dataType: 'json',
                success: function (response){
                    /*var reader = new FileReader();*/
                    /*response = $.parseJSON(response);*/

                    html = generateDOM(response);
                    $('.form-wrapper').append(html);

                },
                error: function(response){
                    console.log(response);
                }
            });

        }

    });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...