2015-11-06 115 views
0

我正在尝试在窗体内创建一个小标签输入,我希望直接从MySQL获取数据。Twitter Typeahead标签从MySQL获取数据

我发现了一个关于制作本地版本的教程,其中数据存储在页面中的数组内部,这种方法很好,但我希望它能够从MySQL中快速地检索数据。

我试图修改脚本从本地到远程,我成功地通过与Json的远程文件连接到MySQL数据库 - 我只是无法弄清楚如何使查找与输入字段一起工作,所以Typeahead(自动完成)对输入做出反应。

我不是在jQuery的神谕,但我在努力学习:-)

我的代码如下所示:

tags.php

<!-- Bootstrap styling for Typeahead --> 
    <link href="/dist/css/tokenfield-typeahead.css" type="text/css" rel="stylesheet"> 
    <link href="/dist/css/bootstrap-tokenfield.css" type="text/css" rel="stylesheet"> 
    <link href="/docs-assets/css/pygments-manni.css" type="text/css" rel="stylesheet"> 
    <link href="/docs-assets/css/docs.css" type="text/css" rel="stylesheet"> 
    <script type="text/javascript" src="/dist/bootstrap-tokenfield.js" charset="UTF-8"></script> 
    <script type="text/javascript" src="/docs-assets/js/scrollspy.js" charset="UTF-8"></script> 
    <script type="text/javascript" src="/docs-assets/js/affix.js" charset="UTF-8"></script> 
    <script type="text/javascript" src="/docs-assets/js/typeahead.bundle.min.js" charset="UTF-8"></script> 

<p><strong>Using Twitter Typeahead</strong></p> 
<form class="tagsform" method="post" action="/pages/tagscompile.php"> 
    <div class="form-group"> 
    <input type="text" class="form-control tokenfield-typeahead" name="tags" /> 
    </div> 
    <div class="form-group"> 
    <input type="submit" class="btn btn-default" name="send" value="SEND"> 
    </div> 
</form> 

<script> 
var engine = new Bloodhound({ 

    datumTokenizer: function(d) { 
    return Bloodhound.tokenizers.whitespace(d.value); 
    }, 
    queryTokenizer: Bloodhound.tokenizers.whitespace, 
    remote: { 
     'cache': false, 
     url: '/pages/tags_engine.php?q=%QUERY', 
     wildcard: '%QUERY', 
     filter: function (data) { 
      return data; 
     } 
    } 
}); 

engine.initialize(); 

$('.tokenfield-typeahead').tokenfield({ 
    typeahead: [null, { source: engine.ttAdapter() }] 
}); 
</script> 

我tags_engine.php文件看起来像这样:

<?php include($_SERVER['DOCUMENT_ROOT'].'/settings.inc.php'); 

$q = strtolower($_GET["q"]); 
if (!$q) return; 

$sql = "select tags as value from tags"; 
$rsd = mysql_query($sql); 
while($rs = mysql_fetch_assoc($rsd)) { 
    $rows[]=$rs; 
} 
// I am working on learning MySQLi but until that sticks, this MySQL will do. 
print json_encode($rows); 
?> 

我真的很感激你的帮忙。

回答

0

它的工作原理 - 问题当然是在MySQL SELECT中。从查询中进行搜索后,它就可以工作了。

$sql = "select tags as value from tags WHERE tags LIKE '$q%'"; 

我很抱歉发布这样一个明确的错误问题。