Je voudrais appeler une fonction javascript dans Symfony après avoir validé le formulaire, et il était invalide. Où puis-je appeler cette fonction?Comment appeler la fonction javascript si le formulaire est invalide dans Symfony
Répondre
Vous devez effectuer l'appel à partir de votre vue. Comment exactement vous voulez faire cela dépend de ce que vous essayez d'atteindre.
Par exemple:
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;
}
}
Et à votre avis:
<?php if($valid === true): ?>
Thanks!
<?php else: ?>
<?php echo $form; ?>
<?php if(false === $valid): ?>
<!-- your javascript call and related stuff -->
<?php endif; ?>
<?php endif; ?>
S'il y a une structure tout à fait différente pour les vues de chaque condition pour $valid
alors vous pouvez utiliser actuall mettre tout cela dans les partiels et ensuite utiliser include_partial
dans les conditions, ou vous pouvez utiliser des modèles de vue séparés et utiliser setTemplate
dans votre action pour rendre le bon ... Ou si elles sont vraiment complexes et nécessitent un journal spécial ic vous pouvez utiliser forward
et séparer les actions entièrement. Ou s'il s'agit d'une soumission ajax, vous pouvez renvoyer json au lieu de html, puis exécuter votre fonction js dans le cadre du rappel - en vérifiant le json retourné pour une variable signalant le résultat de la validation.
C'est vraiment à vous.