一些背景知识对我的特点:结合两个“的foreach”循环
我们已经建立了一个应用程序,允许您创建和共享的东西,最后一步是与其他用户分享。
我有一个视图,打印出每个名字旁边的所有用户和复选框。使用AJAX,如果选中或取消选中一个框,它会将用户标识和共享项目的标识插入到数据库表中。
因此,我需要加入两张表以查看谁与他们共享了该项目。一个表格包含该项目,另一个表格包含与其共享的人员。
目前,我有一个foreach循环翻出所有已共享的用户ID:
<?php foreach($shared_user as $shared_user):?>
<?= $shared_user_emails[set_default($shared_user->user_id)]; ?><br />
<?php endforeach; ?>
然后,foreach循环翻出所有的用户和他们的复选框:
<?php foreach($users1 as $user):?>
<?php $checked = ($user->id == $shared_user_emails[set_default($shared_user->user_id)])? 'checked' : '' ; ?>
<label class="checkbox"><input type="checkbox" class="template_permissions" data-id="<?= $user->id?>" <?= $checked ?> /><?= $user->email ?></label>
你会在上面的foreach看到,我所做的:
$user->id == $shared_user_emails[set_default($shared_user->user_id)])? 'checked' : '' ;
也就是说,如果共享用户标识等于用户标识,则将“已检查”应用于输入。这个工作很好,但只适合一个用户,而不是循环遍历它们。
所有东西都在共享和正常工作,但是只有一个复选框会被选中,而不是所有的用户被共享。
我相信我需要以某种方式结合这两种每个循环,它显然只在最后一个人,其被分享,并检查他们的盒子拉动。
我已经尝试过将这两个环路合并一天了,任何人都可以伸出援助之手吗?
谢谢!
编辑
这里是如何的变量从我的控制器内创建:set_default确实
load_model('user_model', 'users');
$users = $this->users->users_by_company($company_id);
load_model('template_user_model', 'template_users');
$shared_users = $this->template_users->get_many_by('template_id', $template_id);
$this->data['shared_user'] = $shared_users;
$this->data['shared_user_emails'] = $this->user_model->dropdown('id');
不是100%肯定的,但试图解决时,这不应是一个问题这个...
编辑
这是包含在使用print_r的变量的要求:
使用:
<p>shared_user_emails:</p>
<?php print_r($shared_user_emails); ?>
<p>shared_user:</p>
<?php print_r($shared_user); ?>
<p>User:</p>
<?php print_r($user); ?>
制作:
shared_user_emails:
Array (
[2] => 2
[3] => 3
[17] => 17
[19] => 19
)
shared_user:
stdClass Object (
[template_id] => 58
[user_id] => 3
)
用户:
stdClass Object (
[id] => 19
[name] => Steve
[title] =>
[phone] =>
[ext] =>
[email] => [email protected]
[active] => 1
[group_id] => 3
[group] => users
)
和:$shared_user_emails[set_default($shared_user->user_id)]
打印出 “3”
'$ shared_user','$ shared_user_emails [set_default($ shared_user-> user_id)]'和'$ user'是什么内容? 'set_default'做什么? – 2013-05-01 21:04:15
在上面添加了你需要的东西,并不完全确定set_default的作用,但是在解决这个问题时不应该发挥作用 – user1696090 2013-05-01 21:07:20
这不是很有用,因为它没有显示变量的内容。为每个人粘贴'print_r()'结果。 – 2013-05-01 21:08:42