Немного предыстории моей функции:
Мы создали приложение, которое позволяет вам что-то создавать и делиться, последний шаг — поделиться этим с другими пользователями.
У меня есть представление, которое выводит всех пользователей и флажок рядом с каждым именем. Используя AJAX, если вы установите или снимите флажок, он вставляет в таблицу базы данных идентификатор пользователя и идентификатор общего элемента.
Таким образом, мне нужно соединить две таблицы, чтобы увидеть, кто поделился с ними элементом. Одна таблица содержит элемент, а другая таблица содержит тех, с кем им поделились.
На данный момент у меня есть цикл foreach, который извлекает все общие идентификаторы пользователей:
<?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' : '' ;
То есть, если общий идентификатор пользователя равен идентификатору пользователя, примените к входу «проверено». Это отлично работает, но только для ОДНОГО пользователя, а не для всех.
Все делится и работает правильно, однако будет установлен только ОДИН флажок, вместо того, чтобы проверять всех пользователей, если они были разделены.
Я считаю, что мне нужно каким-то образом объединить эти два для каждого цикла, это явно только втягивание последнего человека, которым поделились, и проверка его поля.
Я пытался объединить эти две петли около дня, может ли кто-нибудь протянуть руку?
Спасибо!
ИЗМЕНИТЬ
Вот как переменные создаются внутри моего контроллера:
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%, что делает set_default, но это не должно быть проблемой при попытке решить эту проблему...
ИЗМЕНИТЬ
Вот что содержится в переменных, использующих 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
)
общий_пользователь:
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
? - person Rolando Isidoro   schedule 02.05.2013print_r()
результат для каждого из них. - person Rolando Isidoro   schedule 02.05.2013