这是我的 jQuery 自动完成代码:
PHP 代码:
$query = "SELECT * FROM users";
$users = db::getRecords($query);
$usernames = Array();
foreach ($users as $user)
{
$username[] = '"'.$user['username'].'"';
}
数组是关联的。
JS:
$("#username").autocomplete({
source: [<?php echo join(',', $usernames); ?>],
select: function(event, ui) {
}
});
这个数组 $user
没有被转换成 JavaScript 数组。当我输入我的用户名输入时没有任何反应。如何用PHP数组定义源?
最佳答案
如果您在同一页面中,我建议您这样做。
在 PHP 中:
$username = array();
$query = "SELECT * FROM users";
$users = db::getRecords($query);
foreach ($users as $user) {
$username[] = array('id' => $user['id'], 'username' => $user['username'], 'label' => $user['username']);
}
$username = json_encode($username);
然后在 JS 上:
$("#username").autocomplete({
source: <?php echo $username; ?>,
select: function(event, ui) {
alert(ui.item.id); // alets that user id
}
});
但它强烈建议将 PHP 分开,这样您只需要在该 PHP 中使用 echo json_encode($data)
。
然后使用指向 source: 'path/to/phpfile.php'
的 php 路径。
关于javascript - 自动完成中的数组不显示任何内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26155764/