Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

URI type REST avec un formulaire HTML

4 views
Skip to first unread message

Florent Georges

unread,
Apr 22, 2010, 3:46:04 PM4/22/10
to
Bonjour,

Je dois creer un formulaire HTML dans lequel l'utilisateur doit
selectionner 2 options dans une drop down. Donc quelque chose
comme :

<form>
<select name="lang">
<option value="fr">Français</option>
<option value="en">English</option>
</select>
<select name="country">
<option value="fr">France</option>
<option value="uk">United Kingdom</option>
</select>
<input type='submit' value="Go"/>
</form>

Le probleme c'est que la page vers la quelle le formulaire doit
etre « envoye » a une URI du style REST, qui ressemble a :

http://example.org/somewhere/en/uk

Comment est-il possible de naviguer vers cette page (avec les
deux derniers elements de l'URI en fonction des valeurs
selectionnees dans le formulaire) en cliquant sur le bouton
d'envoi ? Je ne tiens pas forcement a un formulaire et peux
utiliser un autre moyen si recommande.

Merci d'avance,

--
Florent Georges
http://fgeorges.org/

Olivier Miakinen

unread,
Apr 23, 2010, 4:05:39 AM4/23/10
to
[Copie et suivi vers fr.comp.infosystemes.www.serveurs]

Bonjour,

À mon avis, le formulaire semble le plus naturel pour l'exemple que tu
proposes, et ce serait dommage de devoir s'en passer pour une question
de choix d'architecture.

Puisque ce formulaire permet simplement de sélectionner une page parmi
plusieurs, visiblement sans rien créer côté serveur, la méthode GET
s'impose : <form action="http://example.org/somewhere" method="GET">.

Du coup l'URL appelée sera du style :
http://example.org/somewhere?lang=en&country=uk
... et un petit coup de mod_rewrite côté serveur (ou l'équivalent si tu
utilises autre chose que Apache) devrait le réécrire en :
http://example.org/somewhere/en/uk

Je fais suivre vers fr.comp.infosystemes.www.serveurs pour la syntaxe
d'utilisation du mod_rewrite, que je ne maîtrise pas. N'hésite pas à
revenir dans fr.comp.infosystemes.www.auteurs si cette solution côté
serveur ne te convenait pas et que tu cherches une méthode côté client
seulement (même si ça me semblerait à priori une mauvaise idée).

Cordialement,
--
Olivier

Olivier Miakinen

unread,
Apr 23, 2010, 9:50:05 AM4/23/10
to
[retour sur fr.comp.infosystemes.www.auteurs]

Le 23/04/2010 14:58, Florent Georges m'a répondu :
>
>> [...] et un petit coup de mod_rewrite côté serveur [...]
>
> Merci pour ta reponse. C'est effectivement la solution que
> j'utiliserais si je controlais le cote serveur, mais il s'agit en
> fait d'un web service REST sur lequel je n'ai aucun controle, et
> au URIs duquel je dois me conformer.
>
> Je ne peux donc pas changer le format des URIs ni comment je
> passe les parametres :-(

Dommage. Je n'y connais rien à REST : puisqu'ils imposent cette
architecture, ils ne fournissent pas en même temps des outils qui
permettent de s'y conformer ?

> J'imagine que je dois utiliser du Javascript alors, mais je me
> demande si quelque chose existe deja, comme une bibliotheque ou
> autre.

Bon, je ramène la discussion sur fr.comp.infosystemes.www.auteurs (je
n'ose pas aller sur fr.comp.lang.javascript, cette discussion a déjà
assez voyagé).

À moins que les utilisateurs ne soient captifs, et forcés d'utiliser
un navigateur avec JavaScript non désactivable, tu devrais faire une
version sans JS, proposant en prêt-à-cliquer la totalité des liens,
combinaisons de lang et de country. Lorsque JS est activé, celui-ci
remplacera la version à liens multiples par un formulaire, avec
récupération du onsubmit pour reformater l'URL avant envoi.

Mais si JS est obligatoire sur les postes, tu peux te contenter de la
version en JavaScript seul.

Toutes mes condoléances,
--
Olivier Miakinen

0 new messages