Как вызвать функцию JavaScript, если форма недопустима в Symfony - PullRequest
0 голосов
/ 05 декабря 2010

Я хотел бы вызвать функцию JavaScript в Symfony после проверки формы, и она была недействительной.Где я могу вызвать эту функцию?

1 Ответ

2 голосов
/ 05 декабря 2010

Вам нужно будет сделать звонок с вашей точки зрения. Как именно вы хотите это сделать, зависит от того, чего вы пытаетесь достичь.

Например:

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 на наличие переменной, помечающей результат проверки.

Это действительно зависит от вас.

...