Google Groepen ondersteunt geen nieuwe Usenet-berichten of -abonnementen meer. Historische content blijft zichtbaar.

URI type REST avec un formulaire HTML

4 weergaven
Naar het eerste ongelezen bericht

Florent Georges

ongelezen,
22 apr 2010, 15:46:0422-04-2010
aan
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

ongelezen,
23 apr 2010, 04:05:3923-04-2010
aan
[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

ongelezen,
23 apr 2010, 09:50:0523-04-2010
aan
[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 nieuwe berichten