Автозаполнение Jquery возвращает все строки из таблицы, тогда как PHP возвращает результаты в соответствии с запросом - PullRequest
0 голосов
/ 11 декабря 2018

Странная проблема - у Javascript есть доступ к большему количеству данных, чем то, что возвращает php (или, возможно, именно так оно и выглядит).

Javascript: следующий код возвращает все записи из таблицы независимо от того, что я ищу ( term ) по запросу.

$(document).ready(function() {
        //autocomplete
        $(function() {

            $("#search").autocomplete({
                    source: function(request, response) {
                        $.ajax({
                            url: "fetch_emojis.php",
                            method: 'post',
                            data: { term: request.term },
                            dataType: 'json',
                            success: function(data) {
                                response(data);
                            }
                        });
                    },
                    minLength: 1,
                    open: function(event, ui) {
                        $(".ui-autocomplete").css("z-index", 1000);
                    },
                })
                .autocomplete("instance")._renderItem = function(ul, item) {
                    return $("<li><div><img src='" + item.img + "'><span>" + item.description + "</span></div></li>").appendTo(ul);
                };

        });
    });

PHP: следующий код, если запустить отдельно, возвращает строки в соответствии с запросом (включая пример набора результатов)

<?php

if ( !isset($_REQUEST['term']) ) {
    exit;
}

$DB_host = "hostname"; 
$DB_login = "userid";
$DB_pass = "password";
$DB_select = "dbname";
$DB_port = "portnumber";

$mysqli = mysqli_connect($DB_host,$DB_login,$DB_pass,$DB_select,$DB_port);

$term = trim(strip_tags($_GET['term'])); 
$term = preg_replace('/\s+/', ' ', $term);

$a_json = array();
$a_json_row = array();

$a_json_invalid = array(array("id" => "#", "value" => $term, "label" => "Only letters and digits are permitted..."));
$json_invalid = json_encode($a_json_invalid);

if(preg_match("/[^\040\pL\pN_-]/u", $term)) {
  print $json_invalid;
  exit;
}


if ($data = mysqli_query($mysqli, "SELECT * FROM emojis WHERE description LIKE '%$term%'")) {
    while($row = mysqli_fetch_array($data)) {
        $id= htmlentities(stripslashes($row['id']));
        $description = htmlentities(stripslashes($row['description']));
        $source = htmlentities(stripslashes($row['source']));
        $a_json_row["id"] = $id;
        $a_json_row["description"] = $description;
        $a_json_row["img"] = $source;
        array_push($a_json, $a_json_row);
    }
}

echo json_encode($a_json);

?>

PHP Результат для term = 'grin':

[{"id": "1 "," description ":" Grinning Face "," img ":" https://emojipedia -us.s3.dualstack.us-west-1.amazonaws.com / thumbs / 72 / apple / 155 / grinning-face_1f600.png"}, {" id ":" 5 "," description ":" Ухмыляющееся лицо большими глазами "," img ":" https://emojipedia -us.s3.dualstack.us-west-1.amazonaws.com / thumbs/72/apple/155/smiling-face-with-open-mouth_1f603.png"‹,]"id":"6","description":"Удобрение лица улыбающимися глазами "," img ":" https://emojipedia-us.s3.dualstack.us-west-1.amazonaws.com/thumbs/72/apple/155/smiling-face-with-open-mouth-and-smiling-eyes_1f604.png"},{"id ":«7», «описание»: «Ухмыляющееся лицо с потом», «img»: «https://emojipedia -us.s3.dualstack.us-west-1.amazonaws.com / thumbs / 72 / apple / 155 / Smiling-лицо с-открытого рта и холодный-SWeat_1f605.png "}, {" id ":" 8 "," description ":" Grinning Squinting Face "," img ":" https://emojipedia -us.s3.dualstack.us-west-1.amazonaws.com /thumbs / 72 / яблоко / 155 / улыбающееся лицо с открытым ртом и плотно закрытыми глазами_1f606.png "}, {" id ":" 102 "," description ":" Grinning Cat Face ","IMG ":" https://emojipedia -us.s3.dualstack.us-west-1.amazonaws.com / превью / 72 / яблоко / 155 / улыбается кошка-лицо-с открытым mouth_1f63a.png "}, {"id ":" 103 "," description ":" Лицо улыбающегося кота с улыбающимися глазами "," img ":" https://emojipedia -us.s3.dualstack.us-west-1.amazonaws.com / thumbs / 72 / apple/155/grinning-cat-face-with-smiling-eyes_1f638.png"‹]

Есть мысли о том, что я могу делать неправильно?

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