Điểm:-3

How to fill a form field of type fieldset with values from an array

lá cờ cn

How can I fill a formfield type fieldset with more than one markup value from an array?

foreach ($drugis_postgis_connection->tableNames() as $table) {
    $form['tables'] = [
      '#type' => 'fieldset',
      '#title' => $this->t('Tables'),
      '#markup' => $table, 
      '#collapsible' => TRUE, // Added
      '#collapsed' => FALSE,  // Added
  ];

I don't need more fields i want to markup all values from the array in the field. Actually there is only one value, from the array displayed.


Sorry if my question is not clear, i want something like this.

enter image description here

Điểm:0
lá cờ us

Mã hiển thị trong câu hỏi không hoạt động vì hai lý do.

  • Các cho mỗi vòng lặp đang ghi đè $form['tables'] mỗi lần, với hiệu ứng đó $form['tables']['#markup'] chỉ chứa tên bảng cuối cùng được tìm thấy từ $drugis_postgis_connection->tableNames()
  • Một bộ trường phần tử không sử dụng #đánh dấu

Bạn cần sử dụng mã tương tự như mã sau.

$tables = $drugis_postgis_connection->tableNames();

$form['bảng'] = [
  '#type' => 'bộ trường',
  '#title' => $this->t('Bảng'),
  '#collapsible' => ĐÚNG,
  '#collapsed' => SAI,
];

$form['tables']['list'] = [
  '#markup' => nổ tung(',', $tables),
];

tôi giả sử $drugis_postgis_connection->tableNames() trả về một mảng các chuỗi; nếu không thì, phát nổ (',', $ bảng) cần phải được thay đổi.

Điểm:0
lá cờ us

Nếu bạn ghi đè lên $form['tables'] trên mỗi lần lặp lại, bạn sẽ chỉ kết thúc với một những cái bàn về hình thức. Mỗi phần tử trên biểu mẫu $ cần phải có một tên duy nhất. Hãy thử một cái gì đó như thế này:

foreach ($drugis_postgis_connection->tableNames() as $key => $table) {

  $form['table' . $key] = [
    /** ... **/
  ];

}

Nếu bạn chỉ muốn một bộ trường, thì hãy thử một cái gì đó như thế này:

$tables = $drugis_postgis_connection->tableNames();
$form['bảng'] = [
  /** ... **/
  '#markup' => nổ tung('', $tables),
  /** ... **/
];
Steffen  avatar
lá cờ cn
Điều này hoạt động tốt, nhưng nó tạo ra mỗi giá trị một khối riêng, tôi muốn liệt kê tất cả các bảng trong một biểu mẫu ???
lá cờ us
Tôi giả sử bạn có nghĩa là một bộ trường. Nếu đó là trường hợp, tôi đã cập nhật câu trả lời.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.