Vous êtes ici : Accueil / Développement / Symfony 1.0 / Utiliser les champs "dynamiques" de Symfony dans des formulaires affichés par Ajax

Utiliser les champs "dynamiques" de Symfony dans des formulaires affichés par Ajax

Par Pierre-Yves Landuré Dernière modification 08/09/2011 18:56

Vous êtes vous déjà trouvé au problème des champs dynamiques Symfony dans les formulaire Ajax ? Pour faire simple, les input_auto_complete_tag, input_date_tag et autre "rich text" ne sont pas initialisés correctement lorsqu'ils sont utilisés dans un formulaire affiché par une requête Ajax. Cet article présente quelques méthodes pour palier à ce problème. L'astuce consiste à forcer le chargement des feuilles de styles CSS et bibliothèques Javascripts nécessaires.

Ce guide est testé sur:

  • Symfony 1.0

Champ input_auto_complete_tag

Pour que le champs input_auto_complete_tag fonctionne correctement dans un formulaire affiché par Ajax, ajoutez les lignes suivantes à votre view.yml :

  javascripts:
- %SF_PROTOTYPE_WEB_DIR%/js/prototype
- %SF_PROTOTYPE_WEB_DIR%/js/effects
- %SF_PROTOTYPE_WEB_DIR%/js/controls

stylesheets:
- %SF_PROTOTYPE_WEB_DIR%/css/input_auto_complete_tag

Champ input_date_tag

Pour que le champs input_date_tag fonctionne correctement dans un formulaire affiché par Ajax, ajoutez les lignes suivantes à votre view.yml :

  javascripts:
- %SF_CALENDAR_WEB_DIR%/calendar
- %SF_CALENDAR_WEB_DIR%/lang/calendar-<?php echo strtolower(sfContext::getInstance()->getUser()->getCulture()) ?>.js
- %SF_CALENDAR_WEB_DIR%/calendar-setup

stylesheets:
- %SF_CALENDAR_WEB_DIR%/skins/aqua/theme

Champ "Rich Text" TinyMCE

Pour que l'éditeur TinyMCE fonctionne correctement dans un formulaire affiché par Ajax, ajoutez les lignes suivantes à votre view.yml :

  javascripts:
- <?php echo sfContext::getInstance()->getRequest()->getRelativeUrlRoot() ?>/%SF_RICH_TEXT_JS_DIR%/tiny_mce.js

Champ admin_double_list

Pour que le champs admin_double_list fonctionne correctement dans un formulaire affiché par Ajax, ajoutez les lignes suivantes à votre view.yml :

  javascripts:
- %SF_PROTOTYPE_WEB_DIR%/js/prototype
- %SF_PROTOTYPE_WEB_DIR%/js/double_list