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

10-12 00:22
查看更多