Je suis en train de faire quelques tests sur les formulaires (squelette, partie privée ), et j'ai visiblement un souci avec la balise #ENV...
Si je passe à ma page des paramètres via l'url ( en GET donc ), j'ai bien mes billes qui apparaissent grâce à #ENV.
Si par contre j'appelle ma page depuis un formulaire avec une méthode POST, c'est pas tout à fait la même sérénade:
je ne récupère rien au niveau de env ... Si d'autres utilisateurs ont des expériences sur le sujet, je suis preneur !
A cette première question s'en ajoute une seconde qui en découle. Sur un squelette donné, j'affiche un formulaire.
Jusque la tout va bien ... Si ce n'est que je lui passe des billes via l'url, et que manifestement, cela perturbe le formulaire ( d'ou mes tentatives en POST ...).
Si je pars sur une page : http://www.monsite.demo/mapagedetest.html?mavariable_pour_le_formulaire=bla
Le formulaire renvoie une première fois à l'exécution vers http://www.monsite.demo/mapagedetest.html ( sans les paramètres derrière ).
Ensuite seulement, il passe aux étapes verifier_dist et traiter_dist ...
Je rame un peu du coup ... La aussi, si vous avez quelques billes, je suis réellement preneur !
Si je passe à ma page des paramètres via l'url ( en GET donc ), j'ai bien mes billes qui apparaissent grâce à #ENV.
Si par contre j'appelle ma page depuis un formulaire avec une méthode POST, c'est pas tout à fait la même sérénade:
je ne récupère rien au niveau de env ... Si d'autres utilisateurs ont des expériences sur le sujet, je suis preneur !
Tous les utilisateurs d'internet rencontrent ce même phénomène,
qui est la manière normale et souhaitée de fonctionnement de http.
Il faut que tu adaptes ton script à ce fonctionnement.
Souvent, un script est soit appelé en GET, soit en POST,
rarement les 2.
A cette première question s'en ajoute une seconde qui en découle. Sur un squelette donné, j'affiche un formulaire.
Jusque la tout va bien ... Si ce n'est que je lui passe des billes via l'url, et que manifestement, cela perturbe le formulaire ( d'ou mes tentatives en POST ...).
Si je pars sur une page : http://www.monsite.demo/mapagedetest.html?mavariable_pour_le_formulaire=bla
Le formulaire renvoie une première fois à l'exécution vers http://www.monsite.demo/mapagedetest.html ( sans les paramètres derrière ).
Ensuite seulement, il passe aux étapes verifier_dist et traiter_dist ...
Je rame un peu du coup ... La aussi, si vous avez quelques billes, je suis réellement preneur !
C'est trop vague je n'ai pas de belles billes.
Seulement une en terre :
si tu passes un formulaire de POST en GET, ou l'inverse,
il faut probablement adapter la partie de traitement
puisque les valeurs ne sont pas récupérées de la même manières.
(sauf avec php _request qui récupère tout ce qu'il trouve)
Oui, je n'ai pas de soucis au niveau du formulaire en lui même effectivement j'ai constaté que _request récupérait l'intégralité du get et du post et répondait en fonction de ce qu'il trouve dans les deux. Je pensais justement que la balise #ENV se comportait de la même manière mais visiblement, il n'en est rien.
Je pourrais bien entendu aller fouiner directement dans les variables $_GET ou $_POST selon le cas et récupérer ce que bon me semble comme ça.
Ceci dit, je cherche tant que faire se peut à respecter le code "à la sauce spip", d'où mes questions ( au cas ou d'autres se seraient retrouvés confrontés au même problème que moi ).
Pour le coup du formulaire, en reformulant le problème est le suivant: à l'appel à un formulaire sur une page contenant des données en GET, le formulaire renvoie vers la même page mais sans les variables dans l'url, et sans positionner le flag editable. Du coup, mon formulaire s'affiche deux fois avant de daigner enregistrer mes données en base, ce qui fait assez désordre ...
Pour le coup du formulaire, en reformulant le problème est le suivant: à l'appel à un formulaire sur une page contenant des données en GET, le formulaire renvoie vers la même page mais sans les variables dans l'url, et sans positionner le flag editable. Du coup, mon formulaire s'affiche deux fois avant de daigner enregistrer mes données en base, ce qui fait assez désordre ...
Et tu veux récupérer à nouveau tes valeurs dans l'url ?
Il me semble qu'il faut dans ce cas les copier en valeur
dans des champs hidden de ton formulaire.
Par ailleurs c'est un formulaire CVT ?
Il y a aussi un autre truc précodé dans spip
dont je ne connais pas les subtilités
c'est #ACTION_FORMULAIRE{#ENV{action}}
cf Formulaires CVT par l'exemple - SPIP
et sur spip-contrib.net probablement
Je me rend compte combien ma description est peut être floue ... Donc je
vais tenter d'expliciter un peu en plaçant le contexte.
Grosso modo, je suis dans le cas de figure classique ou l'on a une liste
d'objets sur une page ( les articles d'une rubrique par exemple ).
Lors d'un clic sur un des liens de cette première page, j'appelle une
autre page avec un formulaire dedans pour éditer mon objet.
C'est un grand classique de spip qui marche correctement sur les
formulaires CVT de spip.
Dans mon cas par contre, il y a manifestement un souci au niveau du exec
de mon formulaire.
Et sinon, oui, j'utilise bien un formulaire CVT classique, et oui, j'ai
bien mes variables en tant que champ hidden.
Je dois faire une erreur stupide quelque part, mais je ne vois pas ou :s
Je me rend compte combien ma description est peut être floue ... Donc je
vais tenter d'expliciter un peu en plaçant le contexte.
Grosso modo, je suis dans le cas de figure classique ou l'on a une liste
d'objets sur une page ( les articles d'une rubrique par exemple ).
Lors d'un clic sur un des liens de cette première page, j'appelle une
autre page avec un formulaire dedans pour éditer mon objet.
en recoupant avec les précédents posts...
as tu essayé avec method=get dans la déclaration du <form ?
c'est ça qui fait que les hidden sont propagés
JLuc
C'est un grand classique de spip qui marche correctement sur les
formulaires CVT de spip.
Dans mon cas par contre, il y a manifestement un souci au niveau du exec
de mon formulaire.
Et sinon, oui, j'utilise bien un formulaire CVT classique, et oui, j'ai
bien mes variables en tant que champ hidden.
Je dois faire une erreur stupide quelque part, mais je ne vois pas ou :s
> as tu essayé avec method=get dans la déclaration du <form ?
Effectivement, j'avais déclaré mon formulaire CVT en POST, il est donc normal qu'il n'aie pas conservé de variables dans l'url ...
Je pense que tu as mis le doigt dessus ! Je vérifie ça de ce pas ...
Bon bon bon ... Effectivement, c'était bien ça ... Honte à moi !
Un grand merci pour le coup de main : me voila sorti du pétrin et positivement ravi !!