JS控件bootstrap suggest plugin使用方法详解

JS控件bootstrap suggest plugin使用方法详解

简介

Bootstrap Suggest Plugin是一个基于Bootstrap框架开发的下拉菜单插件,它通过jQuery来实现自动补全和建议功能,可以非常方便地为文本框、选择器添加下拉菜单。

安装

首先,你需要引入 Bootstrap Suggest插件的js文件,并且在页面中放置文本框或其他相关元素。你可以将以下代码放在标签中引入Bootstrap Suggest插件所需的CSS和JS文件:

<link href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-suggest/3.0.0/bootstrap-suggest.min.css" rel="stylesheet">
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-suggest/3.0.0/bootstrap-suggest.min.js"></script>

接下来,你需要在你的HTML文档中添加一个文本框,并在其上设置data-toggle为suggest,以及用data-source设置数据源。

<input type="text" id="mySuggest" data-toggle="suggest" data-source='["Apple", "Apricot", "Banana", "Blackberry"]'>

这里data-source是一个包含了数据源的数组。

如果你想要将数据源从数据库中获取,你可以使用由Bootstrap Suggest提供的Ajax方法来获取数据。使用Ajax方法的代码如下:

<input type="text" id="mySuggest" data-toggle="suggest" data-ajax-url="http://myUrl.com/getData" >

使用

当你完成以上准备步骤后,你就可以使用Bootstrap Suggest插件了。按下方示例进行使用:

$(document).ready(function () {
    $('#mySuggest').bsSuggest({
        allowNoKeyword: true,
        showHeader: true,
        effectiveFieldsAlias: {id: "序号", name: "名称", price: "价格", desc: "详细信息"},
        getDataMethod: "url",
        delayUntilKeyup: true,
        url: "search.php?action=search&type=suggest&keyword=",
        idField: "id",
        keyField: "name"
    });
});

上述例子的主要框架如下:

$("#mySuggest").bsSuggest({ 
    //自定义参数 
}); 

其中,bsSuggest()是用于初始化Bootstrap Suggest的方法。你可以通过这个方法指定Bootstrap Suggest插件的行为和参数。

一些基本参数的说明:

  • allowNoKeyword:是否允许不输入关键字进行查询。默认值为false,表示必须输入关键字才能进行搜索。
  • showHeader:是否显示表头。默认值为true。
  • effectiveFieldsAlias:指定下拉菜单中“关键字”、“ID”、“别名”的字段名。
  • getDataMethod:数据源获取方式。可选值有"data", "url", "json", 默认值为"data".
  • url:getDataMethod设为"url"时使用,提供异步获取数据源的URL地址,此处需要指定查询字符串。默认为""。
  • delayUntilKeyUp:是否等待键盘keyup事件触发时才搜索,为true表示是,false表示否。默认为true。
  • idField:在Ajax获取数据源时,指定与每条记录对应的字段名。默认值为"id"。
  • keyField:在Ajax获取数据源时,指定显示在下拉列表中的关键字所对应的字段名,默认为"name"。

示例

下面提供一个从数据库中获取数据并填充文本框的例子:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Bootstrap Suggest Plugin</title>
<link href="//cdn.bootcss.com/bootstrap/3.3.0/css/bootstrap.min.css" rel="stylesheet">
<link href="//cdnjs.cloudflare.com/ajax/libs/bootstrap-suggest/3.0.0/bootstrap-suggest.min.css" rel="stylesheet">
</head>
<body>
<div class="container">
    <div class="row">
        <div class="col-sm-6">
            <input type="text" class="form-control" id="mySuggest" data-toggle="suggest" data-ajax-url="ajax.php?action=search&type=suggest&keyword=">
        </div>
    </div>
</div>
<script src="//cdnjs.cloudflare.com/ajax/libs/bootstrap-suggest/3.0.0/bootstrap-suggest.min.js"></script>
<script>
$(document).ready(function () {
    $('#mySuggest').bsSuggest({
        allowNoKeyword: true,
        showHeader: true,
        getDataMethod: "url",
        url: "ajax.php?action=search&type=suggest&keyword=",
        delayUntilKeyup: true,
        idField: "id",
        keyField: "name"
    }).on('onSetSelectValue', function (e, keyword) {
        $("#text").val(keyword.id);
    });
});
</script>
</body>
</html>

在这个例子中,我们主要使用了ajax.php文件来获取数据源。ajax.php文件的代码如下:

<?php
header("Content-Type: application/json");

$db = new PDO("mysql:host=localhost;dbname=test;charset=utf8", "root", "root");

$action = $_GET['action'];
$searchType = $_GET['type'];
$keyword = isset($_GET['keyword']) ? $_GET['keyword'] : '';

if ($action == 'search') {

    $perPage = 10;
    $page = $_GET['page'];
    $sidx = $_GET['sid'];
    $sord = $_GET['sord'];

    $start = ($page - 1) * $perPage;

    if ($searchType == 'suggest') {
        $sql = "SELECT id,name FROM sites WHERE name LIKE :kw ORDER BY $sidx $sord LIMIT :start,:perPage";
        $stmt = $db->prepare($sql);
        $stmt->bindValue(':start', $start, PDO::PARAM_INT);
        $stmt->bindValue(':perPage', $perPage, PDO::PARAM_INT);
        $stmt->bindValue(':kw', "$keyword%", PDO::PARAM_STR);
    } else {
        $sql = "SELECT * FROM sites WHERE name LIKE :kw ORDER BY $sidx $sord LIMIT :start,:perPage";
        $stmt = $db->prepare($sql);
        $stmt->bindValue(':start', $start, PDO::PARAM_INT);
        $stmt->bindValue(':perPage', $perPage, PDO::PARAM_INT);
        $stmt->bindValue(':kw', "%$keyword%", PDO::PARAM_STR);
    }
    $stmt->execute();

    $result['Rows'] = $stmt->fetchAll(PDO::FETCH_ASSOC);
    $result['Total'] = 10;

    $jsonData = json_encode($result);
    echo $jsonData;
}
?>

为了方便起见,我们在本地的数据库中创建了一个名为test的数据库,其中包含一个名为sites的表。

这个表包含以下字段:id、name、url、alexa、country、rank。

注意,我们只使用了其中的id和name字段,所以你可以在自己的项目中按需更改数据源。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JS控件bootstrap suggest plugin使用方法详解 - Python技术站

(0)
上一篇 2023年6月11日
下一篇 2023年6月11日

相关文章

  • JavaScript事件处理程序详解

    JavaScript事件处理程序详解 JavaScript中的事件处理程序用于在用户执行某些操作时触发特定的JavaScript代码。在Web开发中,事件处理程序是非常重要的,为我们创造了丰富的交互效果。下面,我们将对JavaScript事件处理程序进行详细的讲解。 事件类型和事件处理程序 JavaScript代码可以响应各种事件,比如点击、鼠标移动、键盘按…

    JavaScript 2023年5月27日
    00
  • js获取json中key所对应的value值的简单方法

    要想获取JSON数据中某个key对应的value值,可以使用JavaScript中JSON对象的相关方法来实现。下面是两种简单的方法: 方法一:使用点语法 如果你知道JSON数据中具体的key名字,可以使用点语法(.)获取其对应的value值。例如,下面是一个包含两个key值对(name和age)的JSON对象: { "name": &q…

    JavaScript 2023年5月27日
    00
  • 详解JavaScript中的作用域链与闭包

    详解JavaScript中的作用域链与闭包攻略 什么是作用域链 作用域链是JavaScript语言中用来记录作用域关系的一种机制。它诞生的原因是因为JavaScript是一种基于函数的语言,函数在JavaScript中具有特殊的地位,通过作用域链机制可以让函数所创建的变量和函数访问到它们所处的作用域中声明的变量或者函数。 在JavaScript中,每个函数都…

    JavaScript 2023年6月10日
    00
  • JS常用的4种截取字符串方法

    是的,JS常用的4种截取字符串方法很重要,在此我将为您详细讲解它们。以下是四种截取字符串的方法: 1. slice() slice() 方法可从已有的字符串中提取某个部分并返回这个部分。该方法的语法如下: string.slice(start, end) 其中,start 是开始位置的索引,end 是结束位置的索引(不包括该位置的字符)。如果省略 end,则…

    JavaScript 2023年5月28日
    00
  • JavaScript函数表达式详解及实例

    JavaScript函数表达式详解 在JavaScript中,函数是一等公民,也就是说函数可以像其他变量一样被赋值、传参等操作。函数表达式是一种定义函数的方式,下面我们来详细讲解函数表达式。 函数表达式的语法 函数表达式的语法如下: var myFunction = function(arg1, arg2, …) { //函数体 }; 其中,myFunc…

    JavaScript 2023年5月27日
    00
  • javascript实现循环广告条效果

    让我来为您详细讲解“javascript实现循环广告条效果”的完整攻略。 1. 实现思路 要实现循环广告条效果,需要一个滚动容器和多个图片元素,通过JavaScript动态设置滚动容器的left属性,使其滚动。 具体实现思路如下: 使用HTML和CSS构建基本布局,包括一个滚动容器和多个图片元素; 使用JavaScript动态获取滚动容器和图片元素的宽度,计…

    JavaScript 2023年6月11日
    00
  • 浅谈JavaScript的闭包函数

    下面我将为您详细讲解“浅谈JavaScript的闭包函数”的完整攻略。 什么是闭包函数? 闭包是指函数可以访问其词法作用域之外的变量的能力。换句话说,闭包是可以访问函数定义时所处的外部上下文中的变量的函数。 一个闭包函数通常由两部分组成,其中包括: 外围函数:定义了一个内部函数和一个或多个在内部函数中引用的变量; 内部函数:一个对外围函数中变量的引用,形成闭…

    JavaScript 2023年5月27日
    00
  • JS实现的Unicode编码转换操作示例

    JS实现Unicode编码转换操作可以通过String对象提供的charCodeAt和fromCharCode方法实现。 charCodeAt方法 charCodeAt方法可以通过字符在Unicode编码中的位置返回一个0到65535之间的整数。示例如下: const letter = ‘A’; const unicode = letter.charCode…

    JavaScript 2023年5月20日
    00
合作推广
合作推广
分享本页
返回顶部