Par contre, si je rajoute ce bout de javascript (onsubmit) pour ouvrir la page de traitement dans une nouvelle fenêtre, les données passées dans le formulaire sont perdues. La page s'ouvre bien dans une nouvelle fenêtre, mais impossible de recevoir les données :
(la faute dans le onsubmit est volontaire, sans ça je n'arrive pas à publier mon code ici......)
Voilà ce qui est reçu :
EditionController.php on line 56:
Symfony\Component\HttpFoundation\Request {#56 ▼
+attributes: Symfony\Component\HttpFoundation\ParameterBag {#100 ▶}
+request: Symfony\Component\HttpFoundation\InputBag {#107 ▼
#parameters: []
}
J'ai essayé de changer tous les paramètres de onsubmit, mais je n'arrive pas à un autre résultat... Est-ce qu'il y a une explication à cela, ou une erreur de ma part ?
Je pense que ton bouton fais deux choses. Il poste les données vers la page cible ( celle désignée par le paramètre action ), PUIS l'évènement submit donne lieu à l'ouverture de la page dans une autre fenêtre. Et une ouverture simple, qui ne contient pas de données post.
Bonjour, effectivement le window.open créé une nouvelle requête en ouvrant la page, une requête GET (sans envoyé les donnée du formulaire) le window.open et indépendant du formulaire, le fait de le déclenché dans le submit du formulaire ne les associe pas.
Normalement le target="_blank" que tu as mit sur ton formulaire suffit à faire ouvrir la cible du formulaire dans un nouvel onglet, et les données doivent lui être envoyé.
J'ai résolu mon problème en ouvrant une fenêtre modale et en effectuant une requête ajax. C'est pas aussi pratique qu'une nouvelle fenêtre, puisque ça empêche de continuer à travailler sur la page, mais ça fonctionne bien !
suggestion de présentation.