【发布时间】:2012-03-17 17:44:34
【问题描述】:
我想用来自 PDO 对象的一些数据创建 Javascript 数组。这是我的代码:
$req = $bdd->query('SELECT
id AS user_id,
fname AS user_fname,
lname AS user_lname
FROM mand_users');
$autocomplete_users = '<script type="text/javascript"> var names_users = new Array(';
$users_ids = 'var users_ids = new Array(';
$i = -1;
while ($donnees = $req->fetch(PDO::FETCH_ASSOC)) {
print_r($donnees);
$i++;
$user_full_name = $donnees['user_fname'].' '.$donnees['user_lname'];
$user_id = $donnees['user_id'];
if ( $i < count($donnees)-1) {
$autocomplete_users .= $user_full_name.', ';
$users_ids .= $user_id.', ';
} else {
$autocomplete_users .= $user_full_name.');';
$users_ids .= $user_id.');';
}
}
echo $autocomplete_users . $users_ids .'</script>';
print_r 返回
Array
(
[user_id] => 1
[user_fname] => Bob
[user_lname] => Smith
)
Array
(
[user_id] => 2
[user_fname] => Alice
[user_lname] => Smith
)
所以对象的长度为 2。在这种情况下,JS 代码如下所示
<script type="text/javascript">
var names_users = new Array(Bob Smith, Alice Smith);
var users_ids = new Array(1, 2);
</script>
但是我得到了这个
<script type="text/javascript">
var names_users = new Array(Bob Smith, Alice Smith, var users_ids = new Array(1, 2, </script>
这意味着else中的代码没有被执行。所以我用count()检查了对象的长度,它返回3。你怎么解释这个?
【问题讨论】: