javascript - 需要帮助获得自动建议以显示(以列表形式)从数据库中获取/匹配的数据

标签 javascript php mysql autosuggest

我在解决以下问题时遇到问题: 我有一个带有一个搜索字段的表单(带有自动建议)。 在此字段中,我希望能够输入名称或 mobile.nr。 根据我输入的内容,我会得到建议,因此输入字母或数字会返回:基于数据库中的匹配项的姓名和手机。
如果未找到匹配项,则会出现“创建客户”按钮。
如果找到匹配,则会出现“创建工作卡”按钮。

在下面的代码中,我从客户表中获取所有数据,但我无法弄清楚如何使其以列表形式显示,每个结果一行,包括自动建议中的人员姓名和手机:

建议1:姓名和手机
建议2:姓名和手机
建议3:姓名和手机
等等……

我的自动建议脚本:

<script type="text/javascript">
    $(document).ready(function() {  
        //autocomplete
            $(".input_name_or_mobil").autocomplete({
            source: "search.php",
            minLength: 1        
            });             
    });
</script>

脚本在我的 search.php 文件中搜索:

<?php
if ( !isset($_REQUEST['term']) )
exit;

$connect = mysql_connect('localhost', 'root', '') or die( mysql_error() );
mysql_select_db('workcard');

$results = mysql_query('SELECT name AS shout FROM customer WHERE name LIKE "'. mysql_real_escape_string($_REQUEST['term']) .'%" UNION SELECT mobil FROM customer WHERE mobil LIKE "'. mysql_real_escape_string($_REQUEST['term']) .'%" ORDER BY 1 LIMIT 10', $connect);

$data = array();
if ( $results && mysql_num_rows($results) )
{
while( $row = mysql_fetch_array($results, MYSQL_ASSOC) )
{
    $data[] = array(
        'label' => $row['shout'],
        'value' => $row['shout']
    );
}
}

echo json_encode($data);
flush();
?>

最佳答案

如果我理解你的问题:

您正在使用UNION,因此记录将依次排列。

试试这个:

$results = mysql_query("SELECT name, mobile FROM customer WHERE name LIKE '" . mysql_real_escape_string($_REQUEST['term']) . "%' OR mobil LIKE '" . mysql_real_escape_string($_REQUEST['term']) . "%' ORDER BY 1 LIMIT 10", $connect);
$data = array();
if ($results && mysql_num_rows($results)) {
    while ($row = mysql_fetch_array($results, MYSQL_ASSOC)) {
        $data[] = array(
            'label' => $row['name'] . " " . $row['mobile'],
            'value' => $row['name'] . " " . $row['mobile']
        );
    }
}

在此代码中,您将获取表中的名称和手机字段,以及名称 OR mobil 与术语相似的所有记录。

使用 mysqli_ 函数,因为 mysql_ 函数已弃用。

关于javascript - 需要帮助获得自动建议以显示(以列表形式)从数据库中获取/匹配的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26380812/

相关文章:

javascript - Javascript 问题 - JQuery 和选择器

php - Laravel 集合 : GroupBy items and use WhereIn in the view

php - PDOException SQLSTATE[HY000] [2002] 没有这样的文件或目录

mysql - mysql中 "Open Till"小时04时如何处理:00 > 23:00?

javascript - 比较对象数组

javascript - JS/C# 接口(interface)的 API 标准 - Camel 与 Pascal 案例

javascript - 在 meteor.js 中使用继承

php - CSS 预处理器 : Sass, Less、Php 和 Vals 来自数据库

php - 基于 Woocommerce 中用户输入的自定义购物车商品价格

mysql - 无法加载此类文件 -- mysql/mysql_api (LoadError)