Empêcher ponctuellement le comportement ajax

Bonjour,

J’ai un traitement via un bouton_action en ajax.
Ça marche comme attendu.

Mais l’action elle-même fait dans certains cas :
redirige_par_entete(generer_url_ecrire('uneautrepage'));

Et ça me charge l’intégralité de page page d’admin en ajax.
Je voudrais dans ce cas particulier désactiver l’ajax via le PHP.

J’ai essayé sans succès :

  • redirige_par_entete(generer_url_ecrire('uneautrepage', 'var_noajax=1');
  • redirige_par_entete(generer_url_ecrire('uneautrepage', 'var_mode=noajax');
  • refuser_traiter_formulaire_ajax() (je ne suis pas dans un form CVT mais dans une action, logique que ça ne marche pas)

Est-ce que c’est possible ?
Comment ?

Je me réponds :

  1. D’une part, j’ai supprimé la redirection du php : https://git.spip.net/spip-contrib-extensions/clevermail/src/branch/master/action/clevermail_post_remove.php#L19
  2. D’autre part, j’ai mis la logique dans une boucle qui écrit un js qui fait le chargement de la page souhaitée : https://git.spip.net/spip-contrib-extensions/clevermail/src/branch/master/prive/squelettes/contenu/clevermail_posts.html#L103

Ça n’est pas idéal, mais ça fonctionne.

Je suis toujours preneur de mieux.

la bonne façon de faire, c’est que l’action redirige sur une URL par défaut uniquement si pas de &redirect = dans l’URL de l’action, et de passer un redirect sur l’url de ton bouton action…

1 « J'aime »

N’étant pas dans la situation je comprend pas bien les tenants et les aboutissants de cet échange, mais j’ai l’impression que c’est bon à savoir.
Je l’ai mis en forme dans le carnet : Parfois désactiver l’ajax d’un bouton_action

Merci @JLuc :wink:
Ceci dit, je ne sais pas exploiter la réponse de cerdic :frowning: