Question

J'ai une application web qui contient entre autres une table d'éléments créés à l'aide d'un rappel Ajax. Un tas de champs de formulaire en haut de la table me permettent de filtrer les éléments qui seront affichés dans le tableau en fonction de divers critères et montrer.

Certaines parties de la table ont des listes d'éléments avec un [X] a marqué à côté d'eux que je peux supprimer en cliquant sur ces éléments.

Maintenant, si je fais cela la voie non-ajax / javascript, la page recevait un tas de données POSTée champs et alors rendre le tableau en conséquence. Je peux le faire mais je voudrais également Ajaxify toute l'installation. Mes questions sont à ce sujet.

    bouton
  1. Comment puis-je créer [X]. Un <a> simple serait de « travail », mais il est un GET modifier l'état, donc je ne veux pas faire cela. La façon dont je le fais est maintenant une forme minuscule avec un paramètre caché que tient l'élément à supprimer et un bouton de style soumettre qui est le [x]. Si j'ajaxify cela, je peux obtenir la réponse et faire le nécessaire.

  2. Comment puis-je garder mon DRY back-end? Je ne veux pas avoir deux bits complètement différentes de code pour la version Ajaxified et les réguliers. Qu'est-ce que je fais est maintenant d'avoir la version non-ajax soumettre à une URL qui change l'état et redirige vers la page principale à nouveau (similaire à un système de type PRG). Avec l'Ajax a permis, je l'appelle simplement l'URL et ignorer la redirection mais utilise les données renvoyées pour régler la table. Est-ce le "droit chemin"?

  3. Tout autre avis sur la dégradation gracieuse sur la façon de garder mon DRY back-end?

Était-ce utile?

La solution

je mettrais chaque ligne dans sa propre forme (avec method='POST'), et inclure un champ caché pour dire quel élément doit être supprimé. Le [X] soumettrait la forme, et sous la forme de présenter l'événement, si aucune XMLHttpRequest est présent soumettre simplement le formulaire au serveur qui supprimerait l'élément et redirection vers la même page (ce qui est une bonne pratique pour éviter un rechargement de resoumettre le POST suppression).
Si un XMLHttpRequest est présent, le mettre à POST avec l'identifiant de la chose à supprimer, puis supprimer la ligne si la requête a réussi. Vous pouvez définir un indicateur dans la requête AJAX afin que redirect ne se produit pas, juste un succès (200 OK).

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top