พื้นหลังเล็กน้อยเกี่ยวกับคุณสมบัติของฉัน:
เราได้สร้างแอปพลิเคชันที่ช่วยให้คุณสามารถสร้างและแชร์บางสิ่งได้ ขั้นตอนสุดท้ายคือการแชร์กับผู้ใช้รายอื่น
ฉันมีมุมมองที่พิมพ์ผู้ใช้ทั้งหมดและช่องทำเครื่องหมายถัดจากชื่อแต่ละชื่อ การใช้ AJAX หากคุณทำเครื่องหมายหรือยกเลิกการทำเครื่องหมายในช่อง ระบบจะแทรก ID ผู้ใช้และ ID ของรายการที่แชร์ลงในตารางฐานข้อมูล
ดังนั้น ฉันจึงต้องเข้าร่วมสองตารางเพื่อดูว่าใครแชร์รายการนั้นกับพวกเขา ตารางหนึ่งจะเก็บรายการไว้ ส่วนอีกตารางจะเก็บผู้ที่ถูกแชร์ด้วย
ในขณะนี้ ฉันมี foreach loop ที่ดึง 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' : '' ;
ซึ่งบอกว่าถ้า ID ผู้ใช้ที่ใช้ร่วมกันเท่ากับ ID ผู้ใช้ ให้ใช้ "ตรวจสอบ" กับอินพุต สิ่งนี้ใช้งานได้ดี แต่สำหรับผู้ใช้เพียงคนเดียวเท่านั้นแทนที่จะวนซ้ำพวกเขาทั้งหมด
ทุกอย่างมีการแชร์และทำงานอย่างถูกต้อง อย่างไรก็ตาม จะมีการเลือกช่องทำเครื่องหมายเพียงช่องเดียว แทนที่จะตรวจสอบผู้ใช้ทั้งหมดหากมีการแชร์
ฉันเชื่อว่าฉันต้องรวมสองสิ่งนี้เข้าด้วยกันในแต่ละลูป เห็นได้ชัดว่าจะดึงเฉพาะคนสุดท้ายที่ถูกแชร์และทำเครื่องหมายในช่องของพวกเขาเท่านั้น
ฉันได้ลองรวมสองลูปนี้มาประมาณหนึ่งวันแล้ว มีใครช่วยได้บ้าง?
ขอบคุณ!
แก้ไข
นี่คือวิธีการสร้างตัวแปรจากภายในคอนโทรลเลอร์ของฉัน:
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
)
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
ทำอะไร? - person Rolando Isidoro   schedule 02.05.2013print_r()
สำหรับแต่ละรายการ - person Rolando Isidoro   schedule 02.05.2013