繁体   English   中英

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

[英]Fetch data from database in JS file

我已经在我的网站上为用户创建了标签输入,为此,我使用下拉帮助对标签功能进行了编码。 所以我的问题是,我想从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']
});

我想从数据库中获取标签而不是“ Karachi”,“ Lahore”。
我正在像这样获取数据:

    $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中获取数据。

您可以在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']

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

  1. 将通过php数据查询获得的数据保存到csv文件,可以从中读取javascript。

看一下这篇SO帖子 ,了解如何从csv读取数据。 因此,在此示例中,您的php脚本可以从数据库读取数据,然后通过php生成一个csv文件。 然后,您的JavaScript可以从csv文件读取。

  1. 或者,假设您可以在同一网页中使用脚本而不是.js包含,则可以直接从php写到同一页面中编码的javascript。 在这种情况下,您可以使用json_encodephp arrays打印为javascript arrays ,如本SO post中所述

例如,要创建两个可以使用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对象进行更安全的SQL操作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM