Php Jquery/Mysql:使用Mysql数据在Jquery中自动完成搜索标记?
我有一个html搜索栏,如下所示:Php Jquery/Mysql:使用Mysql数据在Jquery中自动完成搜索标记?,php,jquery,mysql,search,autocomplete,Php,Jquery,Mysql,Search,Autocomplete,我有一个html搜索栏,如下所示: <form id="testblah" action="search_results.php" method="GET"> <input type="text" name="search" class="Search_bar_box" id="search"> </form> 然后,我使用Jquery使用预定义的标记自动完成搜索条件的输入,如下所示: <script> $(function() {
<form id="testblah" action="search_results.php" method="GET">
<input type="text" name="search" class="Search_bar_box" id="search">
</form>
然后,我使用Jquery使用预定义的标记自动完成搜索条件的输入,如下所示:
<script>
$(function() {
$('form').each(function() {
$(this).find('input').keypress(function(e) {
// Enter pressed?
if(e.which == 10 || e.which == 13) {
this.form.submit();
}
});
});
});
$(function () {
var availableTags = [
"Telehandlers",
"Cranes",
"Fork Attachments",
"Aggreko",
"12 Tonne Telhandlers",
"Marwood",
"Crane Suppliers in Manchester",
"Total",
"Oil, Gas & Lubricants",
"Tomato Plant"
];
$("#search").autocomplete({
source: availableTags,
select: function (event, ui) {
window.location = 'search_results.php?search=' + ui.item.value;
}
});
$('#searchForm').on("submit", function (event) {
event.preventDefault();
alert($('#search').val());
});
});
</script>
这一切都很好,但是,我现在要做的是更改预定义文本中的标记,以便从MySQL数据中提取标记。因此,我尝试运行一个MySQL查询,从我的表中获取所有数据,如下所示:
<?php $query12 = "SELECT * FROM supplier_users, supplier_stats GROUP BY supplier_users.user_id";
$result12 = mysql_query($query12);
while($row1 = mysql_fetch_assoc($result12)) {
$tags = $row1; } ?>
然后尝试将我的字符串放入jquery标记部分,如下所示:
$(function () {
var data = "<?= $tags ?>";
var availableTags = [
data ];
但是,这会阻止jquery工作。谁能告诉我哪里出了问题,我需要怎么做。提前感谢您可以像下面这样编辑php代码
<?php
$query12 = "SELECT * FROM supplier_users, supplier_stats GROUP BY supplier_users.user_id";
$result12 = mysql_query($query12);
$tags = array();
while($row1 = mysql_fetch_assoc($result12)) {
array_push($tags, $row1);
}
?>
在java脚本中,正如火影忍者所说,替换
var data = "<?= $tags ?>";
有以下几点
var data = "<?php echo json_encode($tags); ?>";
// array
var availableTags = JSON.parse(data);
尝试使用这种解决方案。1。现在只显示1行2。您需要在EjavaScript 3中回显$tags。您需要在标签中构建数组,就像在javascript中构建一样。。