我刚刚开始使用 PDO 方法查询数据库并且遇到了一些绊脚石。
我正在尝试做的事情:用一个简单查询的结果填充一个预先输入的字段。
查询数据库的代码:
$query = $db->prepare("SELECT `customers`.`Name` FROM `customers` WHERE `customers`.`Name` LIKE :searchterm");
$searchterm = (isset($_POST['searchterm']) === true) ? $_POST['searchterm'] : '';
$query->bindValue(':searchterm', '%' . $searchterm . '%' );
$query->execute();
$rows=$query->fetchAll(PDO::FETCH_ASSOC);
echo(json_encode($rows));
用于预先输入的 Javascript:
$('#customer-name').typeahead({
source: function (query, process) {
return $.post('ajax/get_customer_names.php', { searchterm: query }, function (data) {
console.log(data);
return process(data);
});
}
});
现在我知道 typeahead 需要以下格式的字符串数组
{
"one": "Singular sensation",
"two": "Beady little eyes",
"three": "Little birds pitch by my doorstep"
}
问题是我的代码目前通过发送到console.log以这种格式输出
[{"Name":"test"},{"Name":"Southern Testing"}]
我整天都被这个问题困扰,我发现的例子都不合适。我假设我需要遍历 $rows 变量并提取字符串值,但不知道如何实现。任何人都可以让我知道我哪里出错并提供解决方案吗?