【发布时间】:2015-07-02 05:30:03
【问题描述】:
我正在尝试使用 PHP 源文件的 typeahead 函数。
这是我的输入字段:
<input type="text" class="form-control typeahead" id="test-field" placeholder="Contact"/>
我的 PHP 源码:
<?php
require_once dirname(__FILE__) . ("/../db_connection.php");
global $connection;
$search = $_POST['query'];
$get = "SELECT * FROM contacts WHERE contact_fname LIKE '%{$search}%'";
$query = mysqli_query($connection, $get);
$json = array();
while ($rows = mysqli_fetch_assoc($query)) {
$json[] = $rows;
}
$json = json_encode($json);
print_r($json);
?>
我的 JQuery:
<script src="plugins/typeahead/typeahead.bundle.min.js"></script>
jQuery(document).ready(function() {
// Init Twitter Typeahead.js
var substringMatcher = function(strs) {
return function findMatches(q, cb) {
var matches, substrRegex;
matches = [];
substrRegex = new RegExp(q, 'i');
$.each(strs, function(i, str) {
if (substrRegex.test(str)) {
matches.push({
value: str
});
}
});
cb(matches);
};
};
$('.typeahead').typeahead({
source: function (query, process) {
$.ajax({
url: '../includes/functions/json_test.php',
type: 'POST',
dataType: 'JSON',
data: 'query=' + query,
success: function(data) {
//console.log(data);
process(data);
}
});
}
});
});
如果我直接使用以下方式访问 PHP 文件,我能够显示结果:例如 (localhost/X/XX/json_test.php?query=er) - 仅当我将 $_POST 更改为 $_GET 时(不知道为什么)。 Typeahead 根本不工作。我缺少的任何东西。 谢谢。
编辑: 这是返回的 json:
[{"contact_id":"6","contact_account_id":"38","contact_fname":"firstname","contact_lname":"lastname","contact_title":"CEO","contact_phone":"(123) 456-5885","contact_email":"user@email.com","contact_fax":"(123) 456-5885","contact_facebook":null,"contact_twitter":null,"contact_linkedin":null,"contact_is_main":"0"}]
【问题讨论】:
-
你的
$.ajax中的type: 'POST2',是什么? -
@Sean Typo,抱歉 - 已删除。
-
您要在返回的 JSON 中搜索哪个字段?
-
@LloydBanks contact_fname
标签: php jquery mysql twitter-bootstrap