[英]How to GET array values from JavaScript and display the same values in php
[英]How to get php database values to javascript array
您好,我在使用jquery自動完成插件。 我有一些php檢索的數據庫值,我想在自動完成插件中使用這些值。 為此,我想將php值獲取到javascript數組。 我怎樣才能做到這一點?
$(function() {
var availableTags = [
"ActionScript",
"AppleScript",
"Asp",
"BASIC",
"C",
"C++",
"Clojure",
"COBOL",
"ColdFusion",
"Erlang",
"Fortran",
];
$( "#category" ).autocomplete({
source: availableTags
});
});
PHP的:
<?php
require_once "config.php";
$q = strtolower($_GET["q"]);
if (!$q) return;
$sql = "select distinct(category) from completer";
$rsd = mysql_query($sql);
while($rs = mysql_fetch_array($rsd)) {
$fname = $rs['category'];
echo "$fname"
}
?>
好吧,如果您在php變量中有數據存儲,那么您可以像這樣將這些值添加到javascript變量中, 而無需使用ajax的東西:
假設您在php變量中具有以下值:
$myPhpVar = [
"ActionScript",
"AppleScript",
"Asp",
"BASIC",
"C",
"C++",
"Clojure",
"COBOL",
"ColdFusion",
"Erlang",
"Fortran",
];
然后在您的js部分應該是:
$(function() {
var availableTags = [];
// start here - populate the data from php variable
<?php foreach($myPhpVar as $key => $val) {?>
availableTags.push('<?php echo $val;?>'); // push data into js variable
<?php }?>
// end here
$( "#category" ).autocomplete({
source: availableTags
});
});
JS腳本:
$(function() {
$.ajax({
type : 'get',
url : 'urlofmyfile.php',
data : 'q='+q,
dataType : 'json',
success : function(availableTags){
$( "#category" ).autocomplete({
source: availableTags
});
}
});
});
$ .ajax文檔: http : //api.jquery.com/jquery.ajax/
PHP腳本:
<?php
require_once "config.php";
$q = strtolower($_GET["q"]);
if (!$q) return;
$sql = "select distinct(category) from completer";
$rsd = mysql_query($sql);
while($rs = mysql_fetch_array($rsd)) {
$fname[] = $rs['category'];
}
print json_encode($fname);
exit;
?>
json_encode文檔: http : //php.net/manual/zh/function.json-encode.php
有幾種方法可以實現此目的。
動態頁面生成。
您可以動態地從數據庫獲取值,並將其作為JSON對象插入HTML:
$(function() {
var availableTags = <?php
require_once "config.php";
$q = strtolower($_GET["q"]);
if (!$q) die("[]");
$sql = "select distinct(category) from completer";
$rsd = mysql_query($sql);
$row = array();
while($rs = mysql_fetch_assoc($rsd)) {
$row[] = $rs['category'];
}
echo json_encode($row);
?>;
$("#category").autocomplete({
source: availableTags
});
});
AJAX。
AJAX方法幾乎相同,但被認為是更好的做法。 在這種情況下,PHP文件是一個單獨的文件,僅返回由JS處理的對象。
PHP:
<?php
require_once "config.php";
$q = strtolower($_GET["q"]);
if (!$q) die("[]");
$sql = "select distinct(category) from completer";
$rsd = mysql_query($sql);
$row = array();
while($rs = mysql_fetch_assoc($rsd)) {
$row[] = $rs['category'];
}
echo json_encode($row);
?>
JS:
$(function() {
$.ajax({
url: 'yourPhp.php',
data: 'q=' + q,
dataType: 'json'
}).done(function(dt) {
$("#category").autocomplete({
source: dt
});
});
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.