簡體   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