Tôi đã tạo một hình thức trong quản trị viên.
$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(),
);
Sau đó tôi thêm từng hàng vào nó như sau:
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),
);
}
Các hình thức trông tuyệt vời! Nhưng vấn đề đầu tiên là giá trị được gán #default_value
không hiển thị trong biểu mẫu. Khi tôi thay đổi nó thành #value
giá trị chính xác, DOES xuất hiện. Vì vậy, tôi tự hỏi làm thế nào điều này nên được thực hiện? Các tài liệu Drupal nói #value
không nên được sử dụng với hình thức mặc dù nó đang hoạt động một cách chính xác làm thế nào tôi mong chờ nó hoạt động.
Vấn đề chính là khi tôi điền một số dữ liệu thử nghiệm vào một trong các trường văn bản và gửi nó: Tôi không thấy bất kỳ giá trị nào được gửi trong _submit
hàm của mình .
Cả $form
cũng không $form_state
chứa bất kỳ giá trị tôi nhập vào các trường văn bản.
Tôi tự hỏi nếu điều này là bởi vì tôi đang kết xuất #theme => "table"
? Có ai gặp phải vấn đề này không? Bất kỳ ý tưởng nào về các thay đổi tôi có thể thực hiện sẽ cho phép tôi xem các giá trị tôi đang nhập khi tôi gửi biểu mẫu cho _submit
hàm?