Предлагаю вам написать что-то вроде следующих функций, основанных на помощниках Zend_View.
formText($name, $value = null, array $attribs = null)
formPassword($name, $value = null, array $attribs = null)
formLabel($id, $text, array $attribs = null)
formHidden($name, $value = null, array $attribs = null)
formSubmit($name = null, $text = null, array $attribs = null)
formSelect($name, $selected, array $attribs = null, array $options = null)
formCheckbox($name, $default, array $attribs = null, array $options = null)
Тогда вы никогда не забудете или пропустите что-то подобное.
<form method="POST" action="<?php echo $PHP_SELF; ?>
<p>
<?php
echo formLabel('login_email', 'Email'), ':',
formText('login_email');
?>
</p>
<p>
<?php
echo formLabel('login_password', 'Password'), ':',
formPassword('login_password');
?>
</p>
<p>
<?php
echo formCheckbox('login_remember'), ' ',
formLabel('login_remember', 'Remember me');
?>
</p>
<p>
<?php
echo formSubmit(null, 'Login');
?>
</p>
</form>
Совет:
- Если идентификатор не определен в attribs, идентификатор совпадает с именем, для этикеток, где идентификатор используется в атрибуте для = «$ ID» и formHidden не должны иметь, кроме Идентификатор по умолчанию.
- formCheckbox пишет formHidden с тем же именем перед собой с отрицательным значением, поэтому вы получаете возвращаемое значение, если флажок также не установлен.
- formCheckbox - это массив со значениями для отмеченных или непроверенных.
- Используйте фильтр с FILTER_VALIDATE_BOOLEAN, чтобы прочитать возвращаемое значение из флажка, чтобы проверить, было ли оно отмечено или нет.
На самом деле, я думаю, что это действительно так, чтобы оставить название действия. Если вы это сделаете, браузер просто отправляет/получает текущую страницу. –
Большинство браузеров демонстрируют это поведение, но, согласно официальным спецификациям, требуется атрибут действия - http://www.w3.org/TR/html401/interact/forms.html. – BrynJ
Спасибо за разъяснение. Я согласен с тем, что это плохая идея выразить такую двусмысленность, когда спецификация не определяет поведение по умолчанию. –