<? foreach ($waiting_users as $waiting_user): ?>
<? echo $waiting_user->user_id; ?>
<? endforeach; ?>
我需要在javascript变量中定义用户ID。这样做的最佳方式是什么?
<script type="text/javascript">
var user_id = "<? echo $waiting_user->user_id; ?>"; <-------------???
var post_id = "<? echo $post_id; ?>";
</script>
修改
foreach只返回一个用户ID。它用于显示已注册聊天的用户。然后我使用end.js下面的代码从表中删除用户。
DELETE FROM table WHERE user_id = ? AND post_id = ?;
<a class="end" href="#" title="End">End</a>
$(document).ready(function() {
$("a.end").click(function() {
$.post(base_url + "index.php/home/end", { user_id : user_id, post_id : $(this).attr('id') }, function(data)
{
alert(data);
}, "json");
});
});
答案 0 :(得分:2)
我建议您通过一个服务获取所需的数据,您可以使用ajax从javascript调用,但您的版本也可以,但它有点乱。 如果你真的想编写生成javascript代码的php代码,我建议你将整个对象传递给客户端。只需将其设为JSON,javascript就会将其解释为本机javascript对象。
<script type="text/javascript">
var users = <?php echo json_encode($waiting_user);?>;
// do whatever you want to do with the users
// ex : iterate over all users
for(var key in users)
{
var id = users[key].id;
// ...
}
</script>
<强>更新强>
如果你只想传递给客户端只有用户的id,你应该循环用户集合(在php中)并将它们存储在一个数组(或对象)中。然后使用上述机制:
<?php
$user_ids = [];
foreach ($waiting_users as $waiting_user)
$user_ids[] = $waiting_user->user_id;
?>
// ....
<script type="text/javascript">
var user_ids = <?php echo json_encode($user_ids);?>;
</script>
答案 1 :(得分:0)
在数组中收集用户ID,然后将该数组输出为JS。
<script type="text/javascript">
<?php
$user_ids = array();
foreach($waiting_users as $u) {
$user_ids[] = $u->user_id;
}
?>
var array_of_user_ids = <?=json_encode($user_ids)?>;
</script>