从JS文件中的数据库中获取数据

时间:2015-08-13 21:37:36

标签: php

我已经在我的网站上为我的用户创建了一个标记输入,为此,我使用下拉帮助编写了一个标记函数。所以我的问题是,我想从JavaScript文件中的数据库中获取数据 的的js

var FormSamples = function () {


    return {
        //main function to initiate the module
        init: function () {

            // use select2 dropdown instead of chosen as select2 works fine with bootstrap on responsive layouts.
            $('.select2_category').select2({
                placeholder: "Select an option",
                allowClear: true
            });

            $('.select2_sample1').select2({
                placeholder: "Select a State",
                allowClear: true
            });

            $(".select2_sample2").select2({
                placeholder: "Type to select an option",
                allowClear: true,
                minimumInputLength: 1,
                query: function (query) {
                    var data = {
                        results: []
                    }, i, j, s;
                    for (i = 1; i < 5; i++) {
                        s = "";
                        for (j = 0; j < i; j++) {
                            s = s + query.term;
                        }
                        data.results.push({
                            id: query.term + i,
                            text: s
                        });
                    }
                    query.callback(data);
                }

            });
            function format(item) {
                opt = $(item.element);
                sel = opt.text();
                og = opt.closest('optgroup').attr('label');
                return og+' | '+item.text;

                }
                $("select").select2({
                formatSelection: format,
                escapeMarkup: function(m) { return m; }
            });


            $(".select2_sample3").select2({
                tags: ['Karachi','Lahore']
            });

        }

    };

}();

JS文件的末尾,您会看到:

$(".select2_sample3").select2({
     tags: ['Karachi','Lahore']
});

而不是&#34;卡拉奇&#34;,&#34;拉合尔&#34;我想从数据库中获取标签。
我正在获取这样的数据:

    $conn = mysqli_connect($servername, $username, $password, $dbname);
    $sql = "SELECT * FROM tags";
    $result = mysqli_query($conn, $sql);
    mysqli_query ($conn,"set character_set_results='utf8'"); 
    $row = mysqli_fetch_assoc($result);

任何正文请帮助我,我如何通过PHP获取JS中的数据。

2 个答案:

答案 0 :(得分:0)

你可以在php中使用json_encode:

$ar = array('Karachi','Lahore');
echo json_encode($ar);

并在javascript中:

<script type="text/javascript">
// pass PHP variable declared above to JavaScript variable
var ar = <?php echo json_encode($ar) ?>;
</script>

输出:

['Karachi','Lahore']

答案 1 :(得分:0)

你快到了。现在,您可以通过根据列名选择来访问$row的相关数据成员。例如,您可以查看˚$row["id"]的值。此外,fetch_assoc类型函数也会逐行运行,因此当您有多个结果时,必须为每个row而不是每个column运行它。您可以将结果存储在php数组中,但是必须将它们输出到文件的javascript部分,或者将它们存储在javascript可以访问的文件中,然后才能结束脚本的php部分。下面我会就你的每个选项写一点。

  1. 将从php数据查询中获取的数据保存到csv文件中,javascript可以从中读取。
  2. 查看this SO post以了解如何从csv中读取数据。所以在这个例子中,你的php脚本可以从数据库中读取数据,然后通过php生成一个csv文件。然后,您的javascript可以从csv文件中读取。

    1. 或者,您可以直接从php写入同一页面中编码的javascript,假设您可以在同一网页中使用您的脚本而不是.js包含。在这种情况下,您可以使用json_encode打印php arraysjavascript arrays,如SO post所述。
    2. 例如,要创建两个可在Javascript城市和国家/地区访问的数组,我会这样做:

         <?php
          ...
      
          $city = array();
          $country = array();
          while($row = mysqli_fetch_assoc($result)){
             array_push($city, $row['city']);
             array_push($country, $row['country']);
          }
          ...?>
      
          <script>
             var city = <?php echo json_encode($city); ?>;
             var country = <?php echo json_encode($country); ?>;
           ...
          </script>
      

      这里我假设您将数据存储在列名为“city”和“country”

      的数据库中

      您还应该考虑使用PDO objects来实现更安全的SQL操作。