Если Вы бросаете в HttpURLConnection, существует разъединение () метод. Если соединение будет неактивно, оно, вероятно, сразу разъединится. Никакие гарантии.
I didn't actually run this, but it should work within reason. I've done something similar before that worked, but couldn't remember where the code was.
<?php
class My_Form extends Zend_Form
{
public function init()
{
$checkbox = new Zend_Form_Element_Checkbox("checkbox");
$checkbox->setValue("checked");
$textField = new Zend_Form_Element_Text("text");
$this->addElements(array("checkbox", "text"));
$checkbox = $this->getElement("checkbox");
if ($checkbox->isChecked() )
{
//get textfield
$textField = $this->getElement("text");
//make fields required and add validations to it.
$textField->setRequired(true);
}
}
}
Мне было интересно, как это сделать и в ZF, хотя мне никогда не приходилось реализовывать такую функцию формы.
Одна идея, которая приходит в голову, - создать собственный валидатор, который принимает поле флажка в качестве параметра, и запускать его в цепочке валидаторов, как документально . Если флажок установлен, валидатор может вернуть ошибку. Затем вы можете проверить, все ли проверки завершились неудачно, и только затем рассматривать форму как не прошедшую проверку.
Такой уровень настройки проверки формы может быть неудобным, поэтому, возможно, будет лучше использовать метод isValidPartial формы.
Вот что я делаю, если мне нужно проверить соответствие нескольких элементов друг другу
$f = new Zend_Form();
if($_POST && $f->isValid($_POST)) {
if($f->checkbox->isChecked() && strlen($f->getValue('element')) === 0) {
$f->element->addError('Checkbox checked, but element empty');
$f->markAsError();
}
if(!$f->isErrors()) {
// process
...
...
}
}