php - Jquery Array - AJAX PHP 自动完成输入
问题描述
我正在尝试使用 AJAX / PHP 创建一个自动完成输入,但从 PHP 返回的数组似乎正在破坏它。
这个想法是让风味名称和风味公司名称显示在用户可以选择的下拉/扩展 div 中。
返回到 AJAX 成功(数据)的数组:
数组为 JSON:
我想获取flavour_name
值和flavour_company_name
要作为字符串放入框中的值,然后在选择时将它们都作为由 - flavour_name
/组成的数组抓取,以便稍后flavour_company_name
放入。DB
我试过使用JSON.stringify
,创建一个var obj
我让它返回 1 个值,但不是我想要的列表。
感谢所有帮助,在此先感谢。
我的 AJAX
$("#flavour-name-input").keyup(function(){
var token = '<?php echo json_encode($token); ?>';
var search = $(this).val();
$.ajax({
type: "POST",
url: "controllers/recipeControl.php",
data: { token: token, search: search },
beforeSend: function(){
$("#search-box").css("background","#FFF no-repeat 165px");
},
success: function(data){
//var obj = JSON.parse(data);
$("#suggesstion-box").show();
$("#suggesstion-box").html(data);
//$("#suggesstion-box").html(obj['flavour_name']);
$("#search-box").css("background","#FFF");
}
});
});
我的 PHP 控制器
if(isset($_POST['search'])) {
if($_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest' && isset($_POST['token'])
&& json_decode($_POST['token']) === $_SESSION['token']){
$search = $_POST['search'];
echo json_encode($flavours->getAllFlavoursSearch($search));
}
}
我的 PHP 函数
/**
GET ALL FLAVOURS FOR SEARCH
*/
public function getAllFlavoursSearch($search) {
$query = 'SELECT flavour_name, flavour_company_name FROM flavours WHERE flavour_name LIKE :search ORDER BY flavour_name ASC LIMIT 0,100';
$stmt = $this->queryIt($query);
$stmt = $this->bind(':search', '%'.$search.'%', PDO::PARAM_STR);
return $this->resultset();
}
解决方案
我认为你必须在你的控制器中实现这一点。现在您正在返回 json,它被视为字符串。我会在控制器中创建一个数组,然后循环它并创建 html。
<?php
if(isset($_POST['search'])) {
if($_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest' && isset($_POST['token'])
&& json_decode($_POST['token']) === $_SESSION['token']){
$search = $_POST['search'];
$html = '<ul>';
$content = $flavours->getAllFlavoursSearch($search);
foreach ($content as $con) {
$html .= '<li><a href="">'.$con['flavour_name'].'-'.$con['flavour_company'].'</a></li>';
}
$html .= '</ul>';
echo $html;
}
}
?>
我没有测试过它,但是是这样的,也许你必须检查查询是否返回一个数组。
问候。
推荐阅读
- gitlab - Gitlab:打印自定义警告
- apache-kafka - KSQL 窗口聚合流,会话结束
- python - 如何使用循环获取列表对象的词频并存储在 dict 对象中?
- linux - 尝试将文件从本地 Mac 上传到远程 Ubuntu 服务器
- ansible - 如何参数化“ansible -i host_filename”
- angular - Angular Reactive 表单主题不更新 ui 并重置验证器
- verilog - 无法在 Modelsim 中编译美光的 DDR3 内存模型
- android - 三星设备打开错误的键盘
- android - Dagger2 绑定问题
- python-3.x - 需要网络抓取帮助