[英]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
部分。 在下面,我將為您介紹每個選項。
看一下這篇SO帖子 ,了解如何從csv讀取數據。 因此,在此示例中,您的php腳本可以從數據庫讀取數據,然后通過php生成一個csv文件。 然后,您的JavaScript可以從csv文件讀取。
.js
包含,則可以直接從php寫到同一頁面中編碼的javascript。 在這種情況下,您可以使用json_encode
將php 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.