ฉันได้สร้างแบบฟอร์มในผู้ดูแลระบบ
$form['things'] = array(
'#prefix' => '<div id="things">',
'#suffix' => '</div>',
'#tree' => TRUE,
'#theme' => 'table',
'#header' => array(t('Field Label'), t('Field Name'), t('Location'), t('Stuff')),
'#rows' => array(),
);
จากนั้นฉันจะเพิ่มแต่ละแถวลงไปเช่น:
foreach ($type_fields as $field_name => $attrs) {
$stuff = array(
'#type' => 'textfield',
'#default_value' => $attrs['stuff'],
);
$form['things']['#rows'][] = array(
array('data' => 'label'),
array('data' => $field_name),
array('data' => $field_name),
array('data' => $stuff),
);
}
แบบฟอร์มดูดีมาก! แต่ปัญหาแรกคือค่าที่กำหนดให้#default_value
ไม่แสดงในแบบฟอร์ม เมื่อฉันเปลี่ยน#value
เป็นค่าที่ถูกต้องจะปรากฏขึ้น ดังนั้นฉันสงสัยว่าจะทำอย่างไรดี? เอกสาร Drupalกล่าวว่า#value
ไม่ควรใช้กับรูปแบบถึงแม้มันจะทำงานว่าวิธีการที่ผมจะคาดหวังให้ฟังก์ชั่น
ปัญหาหลักคือเมื่อฉันกรอกข้อมูลการทดสอบบางอย่างในหนึ่งใน textfields และส่งมัน: ฉันไม่เห็นค่าใด ๆ ที่ส่งมาใน_submit
ฟังก์ชั่นของฉัน
ไม่มี$form
หรือ$form_state
ไม่มีค่าใด ๆ ที่ฉันป้อนลงในฟิลด์ข้อความ
ฉันสงสัยว่านี่เป็นเพราะฉันกำลังแสดงผล#theme => "table"
หรือไม่ มีผู้ใดประสบปัญหานี้หรือไม่ ความคิดเห็นเกี่ยวกับการเปลี่ยนแปลงใดที่ฉันสามารถทำได้ซึ่งจะทำให้ฉันเห็นค่าที่ฉันป้อนเมื่อโพสต์ฟอร์มไปยัง_submit
ฟังก์ชัน