Jquery / Mysql:在 jquery 中使用 mysql 数据进行自动完成搜索标签?

Posted

技术标签:

【中文标题】Jquery / Mysql:在 jquery 中使用 mysql 数据进行自动完成搜索标签?【英文标题】:Jquery / Mysql: use mysql data for Auto Complete search tags in jquery? 【发布时间】:2015-07-07 02:32:35 【问题描述】:

我有一个像这样的 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').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 工作。有人可以告诉我哪里出了问题以及我需要如何做到这一点。在此先感谢

【问题讨论】:

1.现在只显示 1 行 2. 你需要在 javascript 中回显 $tags 3. 你需要在标签内构建数组,因为你应该在 javascript 中创建它.. 【参考方案1】:

你可以像下面这样编辑你的 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);

尝试使用这种解决方案。

【讨论】:

以上是关于Jquery / Mysql:在 jquery 中使用 mysql 数据进行自动完成搜索标签?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 jquery 将记录更新到 mysql 数据库中?

我们如何在 jQuery/php/mySQL 中显示最近的通知?

Jquery - 在mysql中查找两个唯一ID之间的范围

使用 jquery .ajax 从 mySQL DB 中检索记录

使用 jQuery.ajax 在 MySQL 中存储表单数据 [重复]

在jQuery datepicker中更改日期格式与MySQL格式相同[重复]