jquery 自动完成不会在我输入时缩小结果范围

我的 jquery 自动完成正在下拉列表中返回结果。但是当我在输入中输入一个数字时,它不会缩小结果的范围。基本上,我试图从数据库中提取多个值,例如名字、姓氏、手机和座机。自动完成应根据电话号码(手机或座机)显示结果。选择后,我希望它填充名字和姓氏字段。我怎样才能解决这个问题?这是我的 PHP:

<?php require_once('../../private/initialize.php'); ?>

<?php require_login(); ?>
<?php
global $db;
$customer = $_GET['customer'] ?? "";
$term = $_GET['term'];


$sql = "SELECT customer_name,landline,mobile,first_name,last_name FROM customer_employees ";
$sql .= "INNER JOIN customer ON customer_ref = customer_id ";
if ($customer != "" || $customer != "TRADE CASH SALES") {
    $sql .= "WHERE customer_name = '" . db_escape($db,$customer) . "'";
} else {
    $sql .= "WHERE landline ";
    $sql .= "LIKE '%" . db_escape($db,$term) . "%'";
    $sql .= "OR mobile ";
    $sql .= "LIKE '%" . db_escape($db,$term) . "%'";
}
$result = mysqli_query($db,$sql);
confirm_result_set($result);


$customerArray = array();

while ($row = mysqli_fetch_assoc($result)) {
    $customerArray[] = array(
        'company' => $row['customer_name'],'landline' => $row['landline'],'mobile' => $row['mobile'],'fName' => $row['first_name'],'lName' => $row['last_name']
    );
}


echo json_encode($customerArray);

这是我的自动完成功能:

$("#phone").autocomplete({
    source: function(request,response) {
        $.ajax({
            url: "<?php echo url_for("/ajax/phoneField.php?customer="); ?>" + $('#customer').val(),dataType: "json",data: {
                term: request.term
            },success: function(data) {
                var result = data
                    //limit the results to 5
                    .slice(0,5)
                    .map(function(item) {
                        //I would prefer the mobile number,but if there is none,use the landline
                        var phone;
                        if (item.mobile == "") {
                            phone = item.landline;
                        } else {
                            phone = item.mobile;
                        }
                        return {
                            label: phone + " " + item.fName + ((item.lName != "") ? ` ${item.lName}` : ""),value: phone
                        }
                    });
                response(result);
            }
        });
    },select: function(event,ui) {
        var employee = ui.item.label.split(" ");
        if (employee.length == 2) {
            $('#fName').val(employee[1]);
            $('#lName').val("");
        } else if (employee.length == 3) {
            $('#fName').val(employee[1]);
            $('#lName').val(employee[2]);
        }
        $("#Street").focus();
    },minLength: 0
});

我已经包含了 herehere 情况的快照

附言我对这个自动完成功能很陌生,所以我可能没有以最好的方式完成它。任何建议,我都愿意接受。

shenandjie2004 回答:jquery 自动完成不会在我输入时缩小结果范围

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/41975.html

大家都在问