Как добавить пустые ячейки и ячейки, содержащие только текст, в таблицу в Zend_Form, которая в противном случае содержит только флажки (таблица, обернутая в форму!), Чтобы их значения не отправлялись?
Я в основном следовал этому руководству, и действительно, мой код не сильно отличается по структуре:
http://davidcaylor.com/2008/03/24/building-table-based-forms-in-zend_form/
Большая разница в том, что мне нужен флажок для тега td, некоторыетекст или ничего внутри.Поскольку я понятия не имею, как добавить только текст или «пустое содержимое» к такой форме ZF, я добавил отключенный скрытый ввод в эти ячейки таблицы, используя:
// empty cells
$form->addElement('hidden', $name, array('disabled' => 'disabled'));
// cells with descriptive text only
$form->addElement('hidden', $name, array('disabled' => 'disabled', 'label' => $name));
Это показывает таблицу флажковпроизводится Zend_Form и его декораторами, некоторые ячейки только для текста, а некоторые пустые:
<table><tbody>
<tr>
<td>
<input type="hidden" name="checkboxes[isoansi][isoansi_dbms]" value="" disabled="disabled" id="checkboxes-isoansi-isoansi_dbms" />
<label for="checkboxes-isoansi-isoansi_dbms" class="optional">ISO/ANSI SQL</label></td>
<td>
<input type="checkbox" name="checkboxes[isoansi][isoansi_all]" id="checkboxes-isoansi-isoansi_all" value="1" checked="checked" />
<label for="checkboxes-isoansi-isoansi_all" class="optional">All</label></td>
<td>
<input type="checkbox" name="checkboxes[isoansi][isoansi_1992]" id="checkboxes-isoansi-isoansi_1992" value="1" checked="checked" />
<label for="checkboxes-isoansi-isoansi_1992" class="optional">1992</label></td>
<td>
<input type="checkbox" name="checkboxes[isoansi][isoansi_1999]" id="checkboxes-isoansi-isoansi_1999" value="1" checked="checked" />
<label for="checkboxes-isoansi-isoansi_1999" class="optional">1999</label></td>
<td>
<input type="checkbox" name="checkboxes[isoansi][isoansi_2003]" id="checkboxes-isoansi-isoansi_2003" value="1" />
<label for="checkboxes-isoansi-isoansi_2003" class="optional">2003</label></td>
<td>
<input type="checkbox" name="checkboxes[isoansi][isoansi_2008]" id="checkboxes-isoansi-isoansi_2008" value="1" checked="checked" />
<label for="checkboxes-isoansi-isoansi_2008" class="optional">2008</label></td>
<td>
<input type="hidden" name="checkboxes[isoansi][isoansi_4_empty]" value="" disabled="disabled" id="checkboxes-isoansi-isoansi_4_empty" /></td></tr>
... more table rows
<tr>
<td>
<input type="hidden" name="checkboxes[sqlserver][sqlserver_dbms]" value="" disabled="disabled" id="checkboxes-sqlserver-sqlserver_dbms" />
<label for="checkboxes-sqlserver-sqlserver_dbms" class="optional">SQL Server</label></td>
<td>
<input type="checkbox" name="checkboxes[sqlserver][sqlserver_all]" id="checkboxes-sqlserver-sqlserver_all" value="1" checked="checked" />
<label for="checkboxes-sqlserver-sqlserver_all" class="optional">All</label></td>
<td>
<input type="checkbox" name="checkboxes[sqlserver][sqlserver_2000]" id="checkboxes-sqlserver-sqlserver_2000" value="1" />
<label for="checkboxes-sqlserver-sqlserver_2000" class="optional">2000</label></td>
<td>
<input type="checkbox" name="checkboxes[sqlserver][sqlserver_2005]" id="checkboxes-sqlserver-sqlserver_2005" value="1" checked="checked" />
<label for="checkboxes-sqlserver-sqlserver_2005" class="optional">2005</label></td>
<td>
<input type="checkbox" name="checkboxes[sqlserver][sqlserver_2008]" id="checkboxes-sqlserver-sqlserver_2008" value="1" checked="checked" />
<label for="checkboxes-sqlserver-sqlserver_2008" class="optional">2008</label></td>
<td>
<input type="hidden" name="checkboxes[sqlserver][sqlserver_3_empty]" value="" disabled="disabled" id="checkboxes-sqlserver-sqlserver_3_empty" /></td>
<td>
<input type="hidden" name="checkboxes[sqlserver][sqlserver_4_empty]" value="" disabled="disabled" id="checkboxes-sqlserver-sqlserver_4_empty" /></td></tr>
</tbody></table>
Как видите, все скрытые входы отключены (только текстовые ячейки слева и некоторые пустые)справа от таблицы).
Однако, когда я отправляю форму и печатаю все значения обратной передачи, отключенные скрытые входные данные пустых ячеек и ячеек только для текста также появляются в списке $ _POST, дажехотя они и не должны быть отправлены (это то, для чего отключено = "отключено"!).
Что здесь не так?
Опять же, в выводе HTML все пусто, а текст -только ячейки отключены = "отключено" установлено.
У меня есть два возможных решения:
Либо добавьте что-то еще, но помеченные, отключенные скрытые входы в данные таблицы (td) ячейки (Zend_Sub_Form) ИЛИ
Узнайте, почему отправляются отключенные скрытые входные данные
Кто-нибудь может помочь?Что может быть не так?