<script>
$(function() {
var availableTags = [
"ActionScript",
"AppleScript",
"Asp",
"BASIC",
"C",
"C++",
"Clojure",
"COBOL",
"ColdFusion",
"Erlang",
"Fortran",
"Groovy"
];
$( "#fname" ).autocomplete({
source: availableTags
});
});
上面的函数帮助我使用静态值实现自动完成,我想要的是从数据库中获取这些值。我写了一个连接到数据库的PHP函数,但我不知道如何将该函数的返回值传递给下面的javascript页面是该片段。
function getAllDrugs(){
$med = "";
$select = mysql_query("SELECT dname FROM phar_store_config where quantity > 1");
while($row = mysql_fetch_array($select)){
$med = $med.$row['dname'];
}
return $med;
}
现在我希望将上面php函数的返回值传递给我的js函数。
任何帮助将不胜感激。
答案 0 :(得分:1)
您可以使用函数json_encode()并修改您的代码:
function getAllDrugs(){
$med = array();
$select = mysql_query("SELECT dname FROM phar_store_config where quantity > 1");
while($row = mysql_fetch_array($select)){
$med[] = $row['dname'];
}
return $med;
}
(这会将结果转换为名称数组而不是字符串)。 然后,您可以在标记中写入:
$(function() {
$( "#fname" ).autocomplete({
source: <?php echo json_encode(getAllDrugs()); ?>
});
});
答案 1 :(得分:1)
以下是使用JSON的自动完成的示例:
$( "#fname" ).autocomplete({
source: "autoAcc.php",
dataType:'json',
minLength: 0,
delay:0,
select: function( event, ui ) {
$( "#fname" ).val( ui.item.classe );
return false;
}
}).data( "autocomplete" )._renderItem = function( ul, item ) {
if(!item.classe) {
return $( "<li></li>" )
.data( "item.autocomplete", item )
.append('<a style="color:red;font-weight:bold;">No result !</a>' )
.appendTo( ul );
} else {
return $( "<li></li>" )
.data( "item.autocomplete", item )
.append( '<a>' + item.classe + '</a>' )
.appendTo( ul );
}
};
$( "#fname" ).click(function() {
$( "#fname" ).autocomplete("search","");
});
假设classe
是我要在“列表框”中显示的列。
这是我生成JSON(autoAcc.php)的PHP代码:
$requete = 'SELECT * FROM tbl_administrators';
$result = mysql_query($requete);
$rows = array();
while($r = mysql_fetch_assoc($result)) {
$rows[] = $r;
}
echo json_encode($rows);
如果您想了解有关此代码的更多信息,我希望这对您有帮助。
答案 2 :(得分:0)
假设你正在使用jQuery。
如果将值存储为JSON数组,则可以执行$.parseJSON
或$.getJSON
,然后将值解析为JS函数。
答案 3 :(得分:0)
$(function() {
var availableTags = [<?="'".implode("','",getAllDrugs())."'"?>];
$( "#fname" ).autocomplete({
source: availableTags
});
});