Вам нужно будет сделать звонок с вашей точки зрения. Как именно вы хотите это сделать, зависит от того, чего вы пытаетесь достичь.
Например:
public function executeFormSubmitAction(sfWebRequest $request)
{
$this->form = new MyForm();
$this->form->bind($request->getParamter($$this->form->getName());
$this->valid = null;
if($this->form->isValid())
{
// do stuff with values
$this->valid = true;
}
else
{
$this->valid = false;
}
}
А потом по вашему мнению:
<?php if($valid === true): ?>
Thanks!
<?php else: ?>
<?php echo $form; ?>
<?php if(false === $valid): ?>
<!-- your javascript call and related stuff -->
<?php endif; ?>
<?php endif; ?>
ЕСЛИ для $valid
существует совершенно другая структура для представлений каждого условия, тогда вы можете использовать actall, чтобы поместить все это в партиалы, а затем использовать include_partial
внутри условий, или вы можете использовать отдельные шаблоны представления используйте setTemplate
в своем действии, чтобы отобразить правильное ... Или, если они действительно сложны и требуют особой логики, вы можете использовать forward
и полностью отделять действия. Или, если это ajax-представление, вы можете вернуть json вместо html, а затем выполнить свою функцию js как часть обратного вызова - проверить возвращенный json на наличие переменной, помечающей результат проверки.
Это действительно зависит от вас.