0

i am tying to search user search from database database include varchar and image every time i type in search box this error appears in console Uncaught SyntaxError: Unexpected token < in JSON at position 0

Here is my js code

$(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;
}

and connection to db 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 '</pre>';
    exit;
}

?>

please help me to solve this problem

error screenshot

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

1 Answers1

1

Change your php function to

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;
}

And you ajax code to

$(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);
                }
            });

        }

    });
Rohit Rasela
  • 425
  • 3
  • 6