Score:-2

การเพิ่มรายการที่เลือกลงในตารางเลือกผลลัพธ์

ธง pt

ฉันกำลังพยายามเพิ่มรายการที่เลือกในผลลัพธ์ของตาราง แต่มาร์กอัปแสดงผลเป็นข้อความ

$ส่วนหัว = [
  'col1' => t('COL1'),
  'col2' => t('COL2'),
];
$แถว = [
  1 => [
    'col1' => 'แถว-1-เซลล์-1',
    'col2' => 'แถว-1-เซลล์-2',
  ]
  ['col1' => 'ทดสอบ'],
  ['col2' => 'ทดสอบ'],
  ['col1' => 'ทดสอบ'],
  2 => [
    'col1' => 'แถว-2-เซลล์-1',
    'col2' => $form['example_select'] = [
                  '#type' => 'เลือก',
                  '#title' => $this->t('เลือกองค์ประกอบ'),
                  '#ตัวเลือก' => [
                    '1' => $this->t('หนึ่ง'),
                    '2' => $this->t('สอง'),
                    '3' => $this->t('สาม'),
                  ]
                ]
  ]
];
$แบบฟอร์ม['ทดสอบ'] = [
  '#type' => 'เลือกตาราง',
  '#header' => $ส่วนหัว,
  '#options' => $rows,
];

ป้อนคำอธิบายรูปภาพที่นี่

ฉันได้ทำการทดลองกับรหัสด้านบนใน buildForm (อาร์เรย์ $form, FormStateInterface $form_state) ฟังก์ชั่นของคลาสคอนโทรลเลอร์ของฉัน คลาสแสดงฟอร์มสำหรับการกำหนดค่าแบบกำหนดเองบางอย่างในพื้นที่การดูแลระบบ

ทุกคนสามารถช่วยฉันเข้าใจสิ่งที่ฉันต้องทำเพื่อให้รายการที่เลือกของฉันแสดงผลเป็นมาร์กอัปแทนข้อความ

Score:1
ธง fr

คำแนะนำทั่วไปบางประการ: อย่ากำหนดคีย์ตัวเลขเช่น 1 และ 2 ให้กับแถวของคุณ - ให้ PHP สร้างคีย์ หรือถ้าคุณต้องการตั้งค่าคีย์ของคุณเองจริงๆ ให้ใช้คีย์สตริงและกำหนดคีย์ให้กับทุกแถวสิ่งที่คุณแสดงด้านบนมีแถวแรกเป็นหมายเลข 1 จากนั้นแถวที่สอง สาม และสี่ไม่มีคีย์ (ดังนั้น PHP จะกำหนดให้ตามลำดับ 2, 3, 4) จากนั้นคุณให้แถวที่ห้าเป็นคีย์ 2 ซึ่งเขียนทับ แถวที่สอง (ซึ่งมีคีย์ที่สร้างขึ้นโดยอัตโนมัติเป็น 2) ดังนั้นคุณจึงมีสี่แถวแม้ว่าคุณจะต้องการห้าแถวก็ตาม การกำหนดคีย์แถวอย่างสม่ำเสมอตั้งแต่ต้นจะช่วยหลีกเลี่ยงปัญหาเช่นนี้

ในทำนองเดียวกัน เมื่อคุณทำสิ่งนี้:

'col2' => $form['example_select'] = [ ... ]

คุณกำลังเพิ่มองค์ประกอบฟอร์มใหม่ลงในฟอร์มในสองตำแหน่ง - หนึ่งครั้งในตารางและอีกครั้งนอกตาราง หากนั่นคือสิ่งที่คุณต้องการ ให้ประกาศองค์ประกอบฟอร์มภายนอกตารางก่อน แล้วใช้ตัวแปรภายในตาราง

อย่างไรก็ตาม ต่อไปนี้จะทำสิ่งที่คุณต้องการ:

$ส่วนหัว = [
  'col1' => $this->t('COL1'),
  'col2' => $this->t('COL2'),
];
$แถว = [];

$แถว[] = [
  'col1' => 'แถว-1-เซลล์-1',
  'col2' => 'แถว-1-เซลล์-2',
];
$แถว[] = [
  'col1' => 'แถว-2-เซลล์-1',
  'col2' => ['ข้อมูล' => [
    '#type' => 'เลือก',
    '#title' => $this->t('เลือกองค์ประกอบ'),
    '#ตัวเลือก' => [
      '1' => $this->t('หนึ่ง'),
      '2' => $this->t('สอง'),
      '3' => $this->t('สาม'),
    ]
  ]],
];

$แบบฟอร์ม['ทดสอบ'] = [
  '#type' => 'เลือกตาราง',
  '#header' => $ส่วนหัว,
  '#options' => $rows,
];
pt flag
ว้าว! ฉันเหนื่อยมากกว่าที่คิด ฉันขอโทษจริงๆสำหรับรหัสที่ยุ่งเหยิงฉันเหนื่อยและรีบร้อนซึ่งนำไปสู่ความยุ่งเหยิงของรหัสที่น่าอาย ขอบคุณสำหรับคำตอบ. มันเป็นสิ่งที่ฉันต้องการ

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา