web-dev-qa-db-fra.com

Comment puis-je utiliser AJAX enregistrer/mettre à jour un formulaire de widget?

Le formulaire de mon widget personnalisé aura deux menus déroulants: le contenu du deuxième menu dépend de la sélection de l'utilisateur dans le premier menu (pensez à la façon dont le pays et l'état/la province fonctionne).

Je pense que la mise en œuvre la plus simple (bien que peut-être pas la plus conviviale) serait simplement de faire en sorte que le formulaire se soumette automatiquement lui-même lorsque la première conversion est modifiée (c'est-à-dire: <select onchange="submit_the_page_via_ajax()">). J'ai essayé onchange="this.form.submit();" mais cela n'a pas exploité l'appel d'Ajax à ma grande surprise (j'aurais pensé que les développeurs WordPress sophistiqués auraient hiJaxed l'événement de soumission du formulaire. ). Ils doivent hijaxer le bouton submit , car toutes les sources de vue me montrent qu’il s’agit d’un type d’entrée HTML standard pour le bouton.

Quoi qu'il en soit, j'apprécierais un peu mieux comprendre les meilleures pratiques pour soumettre un formulaire de widget utilisant ajax. This est un excellent message, mais ne traite que de l'affichage du widget, pas de la forme du back-end.

1
Tom Auger

Les boutons Enregistrer ont une classe widget-control-save, et ce est relié à wpWidgets.save() . Vous devez donc soit appeler wpWidgets.save(), soit (probablement plus facilement) déclencher un événement de clic sur le bouton Enregistrer .

3
Jan Fabry