【问题标题】:Jquery / Mysql: use mysql data for Auto Complete search tags in jquery?Jquery / Mysql:在 jquery 中使用 mysql 数据进行自动完成搜索标签?
【发布时间】: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 中创建它..

标签: php jquery mysql search autocomplete


【解决方案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);

尝试使用这种解决方案。

【讨论】:

    猜你喜欢
    • 2012-01-14
    • 1970-01-01
    • 2014-09-17
    • 2013-06-21
    • 1970-01-01
    • 1970-01-01
    • 2013-04-26
    • 2012-02-11
    • 1970-01-01
    相关资源
    最近更新 更多