使用Selectize.js从SQL加载远程数据

前端之家收集整理的这篇文章主要介绍了使用Selectize.js从SQL加载远程数据前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
你会注意到,我是一个数据科学家,而不是一个程序员/开发人员.

sql中,我有一个具有数万个名称数据库.我设法在我的twitter bootstrap网站中实现了selectize.js工具,但它加载了缓慢的方式.在Selectize.js,https://github.com/brianreavis/selectize.js/blob/master/docs/usage.md的帮助页面上,我读到可以在用户输入某些东西时即时加载选项.

但是从示例中我无法从sql表中找到如何执行此操作.有人写伪代码可以做什么?

简而言之,当用户键入一些名称时,我希望脚本在sql表中找到这些名称,并且选择html标签,而不是在开始时下载每个名称.

这是我现在的代码

<div class="control-group">
                <select id="select-yourself" class="demo-default" placeholder="Type your name...">
                    <option value="">Type your name ...</option>
                        <?PHP
                            for($row = 0; $row < sizeof($race_table); $row++){
                            echo("<option value=".$row.">".
                            $race_table[$row]['Name']."</option>");
                        }
                        ?>
                </select>
            </div>
            <script>
            $('#select-yourself').selectize({
                create: false,maxOptions: 100,//sortField: {
                    //field: 'text',//direction: 'asc'
                //},dropdownParent: 'body'
            });

解决方法

你可以尝试一下:

HTML:

<div class="control-group">
  <select id="select-yourself" class="demo-default" placeholder="Type your name...">
    <option value="">Type your name ...</option>
  </select>
</div>

JavaScript的:

$('#select-yourself').selectize({
    valueField: 'name',labelField: 'name',searchField: 'name',options: [],create: false,load: function(query,callback) {
        if (!query.length) return callback();
        $.ajax({
            url: 'http://127.0.0.1:8080/getnames.PHP',type: 'GET',dataType: 'json',data: {
                name: query,},error: function() {
                callback();
            },success: function(res) {
                callback(res);
            }
        });
    }

PHP文件(getnames.PHP)仅用于从MysqL数据库数据创建json文件

<?PHP
// parameters from URL
$urlparam_name = $_GET['name'] ."%";

// connect to the database
include("MysqL.inc");
$link = MysqLi_connect($host,$user,$pass,$db) or die("Error " .MysqLi_error($link));

$sql = "
SELECT `race_table`.`name`
FROM `race_table`
WHERE `race_table`.`name` like '$urlparam_name'
GROUP BY `race_table`.`name` ASC
";

$result = MysqLi_query($link,$sql) or die("Error " .MysqLi_error($link));
$rows = array();
while ($row = MysqLi_fetch_assoc($result))
{
    extract($row);
    $rows[] = "{ \"name\": \"$name\" }";
}

// output to the browser
header('Content-Type: text/javascript; charset=UTF-8');
echo "[\n" .join(",\n",$rows) ."\n]";
?>

猜你在找的JavaScript相关文章