[英]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.