[英]Input text with autocomplete - Uncaught TypeError: $.ajax is not a function in PHP, MySQL and jQuery
[英]Jquery Array - AJAX PHP Autocomplete input
我正在尝试使用AJAX / PHP创建自动完成输入,但是从PHP返回的数组似乎正在破坏它。
想法是让风味名称和风味公司名称显示在用户可以选择的下拉/扩展div中。
将Array返回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;
}
}
?>
我没有测试过,但类似这样,也许您必须检查查询是否返回数组。
问候。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.