javascript - 自动完成中的数组不显示任何内容

标签 javascript php jquery mysql arrays

这是我的 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/

相关文章:

javascript - 测试光标是否在文本区域的第一行(使用软换行符)

php - 如何检查 Laravel 4.2/php 中的时间间隔是否重叠?

jquery - 实时点击绑定(bind),内部有 .click 事件。防止递归

jquery - 鼠标悬停使用jquery获取链接的值

javascript - 发现for循环有14个操作,map方法有9个操作

javascript - D3轴重叠

php - SQL 结果作为 txt.file 由 php

php - 仅限制查询中的连接?

javascript - 类型错误 : Cannot read property 'click' of null

javascript - 通过 PHP 和 JQuery 提交多个数据库更新