我正在使用typeahead插件版本3.1.1进行自动完成搜索。我用过php,mysql,ajax和js / jquery。 当我使用mysqli时,它在搜索框中键入时显示完美,但问题是当我使用PDO时,它给我一个错误,称为
" TypeError:b.toLowerCase不是函数"。
问题不是PDO,我认为是预先输入插件。 如果有人遇到问题或某人有解决方案,请帮我解决。
代码是: test.js:
$(document).ready(function () {
$('#search').typeahead({
source: function (query, process) {
return $.get('../../xdocs-admin/test/fetch.php', {query:
query}, function (data) {
data= $.parseJSON(data);
return process(data);
});
}
});
});
php code,fetch.php:
$host = "mysql";
$username = "root";
$port = 3306;
$db = "xpans_plugs";
$password = "passroot";
try {
$connection = new PDO("mysql:host=$host;dbname=$db; port=$port",
$username, $password);
$connection->setAttribute(PDO::ATTR_ERRMODE,
PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
echo "The connection is failed: " . $e->getMessage();
}
$sql = "SELECT * FROM search_test";
$stmt = $connection->prepare($sql);
$stmt->execute();
$data = $stmt->fetchAll();
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
echo $row['title'];
}
echo json_encode($data);
答案 0 :(得分:0)
在: -
$stmt->execute();
执行: -
$data = array();
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
$data[] = $row['title'];
}
echo json_encode($data);
并检查