<?php require_once('Connections/root.php'); ?>
<?php $q = mysql_query("SELECT * FROM performer"); ?>
<script> $(document).ready(function () {
$(function() {
var availableTags = ["<?php while($r = mysql_fetch_assoc($q)) { echo $r['username']; } ?>"];
$("#search_box").autocomplete({
source: availableTags
});
});
});
</script>
脚本有效,但显示:User1User2User3
我希望它显示:
用户1
用户2
用户3
如何在每个用户后添加新行以及在何处添加换行符
如果我这样做
var availableTags = ["<?php while($r = mysql_fetch_assoc($q)) { echo $r['username'] . " <br />"; } ?>"];
我得到User1User2User3,br为字符串
答案 0 :(得分:4)
将您的PHP逻辑与您的Javascript代码分开。在顶部,首先构建一个PHP数组:
$tags = array();
while($r = mysql_fetch_assoc($q)) {
$tags[] = $r['username'];
}
然后在你的javascript中,回显数组JSON encoded:
var availableTags = <?php echo json_encode($tags); ?>;
注意:您使用的是已弃用的mysql_*
函数,应切换为mysqli_*
或PDO
。
答案 1 :(得分:0)
如上所述,您的availableTags
数组只有1个字符串变量。
您需要将字符串推送到数组。
你可以试试这个:
var availableTags = [];
<?php while($r = mysql_fetch_assoc($q)) { ?>
availableTags.push('<?php echo $r['username']; ?>');
<?php } ?>
答案 2 :(得分:0)
生成的js数组不是您所期望的。使用您的代码,您将获得
var availableTags = ["User1User2User3"];
而你需要的是
var availableTags = ["User1", "User2", "User3"];
Yous应该调整您的PHP代码以生成正确的JS。