Formulaire

HTML5, CSS3, Javascript, support des mobiles... Que penser de votre site ? Vous manquez d'informations pour la construction d'un site qui puisse s'afficher correctement partout ? C'est un problème simple, un peu complexe ? Venez ici !
EmmaZL
Lézard à collerette
Messages : 245
Inscription : 07 août 2004, 00:43

Formulaire

Message par EmmaZL »

Bonjour ! :wink:

J'ai sur mon site internet un annuaire d'éleveurs. Les éleveurs sont classés par sortes d'animal (chien, chat, furet) et par pays (france, suisse, belgique, canada).

J'aimerais créer un formulaire comportant 2 listes déroulantes. Une avec les sortes d'animaux et l'autre avec les pays. Une fois que l'utilisateur clique sur le bouton, il se retrouvera par exemple sur la page (html si possible) "Eleveurs de furets en France". Il y aura donc autant de pages que de combinaisons animal-pays possibles.

Pour créer le formulaire, pas de problème. Par contre, comment faut-il faire pour que la bonne page soit renvoyée en fonction de la combinaison choisie ?

Est-ce qu'il faut utiliser du PHP ? Ou est-ce qu'il y a un moyen plus simple ?

Merci d'avance.

Emma.

Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.0.7) Gecko/20060909 Firefox/1.5.0.7
S'il n'y a pas de solution, c'est qu'il n'y a pas de problème. (devise Shadok)
Ma configuration
myahoo
Animal mythique
Messages : 8279
Inscription : 02 sept. 2005, 00:13

Re: Formulaire

Message par myahoo »

EmmaZL a écrit :Pour créer le formulaire, pas de problème. Par contre, comment faut-il faire pour que la bonne page soit renvoyée en fonction de la combinaison choisie ?

Est-ce qu'il faut utiliser du PHP ? Ou est-ce qu'il y a un moyen plus simple ?
Le plus naturel sera à avoir des pages aux noms étant fonction (bijective, pour tout dire) de la recherche effectuée : par exemple une page chien-france.html pour les chiens en France ou chat-canada.html pour les chats.. eh oui, au Canada :D

Le PHP se débrouille bien avec ça mais ne semble pas t'intéresser, donc du JavaScript doit bien pouvoir s'en occuper (il me semble que Topachat.Com fait cela, justement), mais là je ne sais pas trop comment. Le but dans les deux cas sera de concaténer une adresse de dossier (de type "http://www.tonsite.com/un_dossier/"), les valeurs choisies dans les listes ("chat" + "Canada" = "chat-canada", par exemple), et le format de la page (".htm", ".html", etc.).

Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.0.7) Gecko/20060909 Firefox/1.5.0.7
Invité

Re: Formulaire

Message par Invité »

Merci myahoo ! :wink:
myahoo a écrit :

Le plus naturel sera à avoir des pages aux noms étant fonction (bijective, pour tout dire) de la recherche effectuée : par exemple une page chien-france.html pour les chiens en France ou chat-canada.html pour les chats.. eh oui, au Canada :D
C'est ce que je pensais faire, effectivement. :D
Le PHP se débrouille bien avec ça mais ne semble pas t'intéresser, donc du JavaScript doit bien pouvoir s'en occuper (il me semble que Topachat.Com fait cela, justement), mais là je ne sais pas trop comment. Le but dans les deux cas sera de concaténer une adresse de dossier (de type "http://www.tonsite.com/un_dossier/"), les valeurs choisies dans les listes ("chat" + "Canada" = "chat-canada", par exemple), et le format de la page (".htm", ".html", etc.).
Oh mais je veux bien du PHP s'il le faut. Je me demandais juste si une autre solution existait. Seulement, je suis nulle en PHP. J'arrive à modifier un peu le code (réparer mon phpBB par exemple :lol: ), mais impossible de créer du code moi-même. C'est du chinois pour moi. :oops:
Comment on fait pour concaténer tous ces éléments ? :(

Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.0.7) Gecko/20060909 Firefox/1.5.0.7
EmmaZL
Lézard à collerette
Messages : 245
Inscription : 07 août 2004, 00:43

Message par EmmaZL »

C'était moi l'invité. :oops:

Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.0.7) Gecko/20060909 Firefox/1.5.0.7
S'il n'y a pas de solution, c'est qu'il n'y a pas de problème. (devise Shadok)
Ma configuration
myahoo
Animal mythique
Messages : 8279
Inscription : 02 sept. 2005, 00:13

Re: Formulaire

Message par myahoo »

Anonymous a écrit :Comment on fait pour concaténer tous ces éléments ? :(
Un exemple c'est ça, tiens :

Code : Tout sélectionner

   var chaine1="Vive le ";
   var chaine2="JavaScript";
   var chaine=chaine1+chaine2;
Et chaine contiendra la valeur "Vive le JavaScript".
Après il reste à récupérer les données depuis les listes déroulantes...
Bon, je r'garde ça !

Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.0.7) Gecko/20060909 Firefox/1.5.0.7
EmmaZL
Lézard à collerette
Messages : 245
Inscription : 07 août 2004, 00:43

Message par EmmaZL »

Uhm... je vois, mais je les mets où ces trucs là ?

J'avais pensé d'abord à un truc du genre :

Code : Tout sélectionner

				<select name="choix" onchange="window.location.href=this.options[selectedIndex].value;">
				<option value="furet.htm">Furet</option>
				<option value="chien.htm">Chien</option>
				<option value="chat.htm">Chat</option>
... et de broder là autour. Mais pas moyen de concaténer les 2 <select> ensemble... :(

Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.0.7) Gecko/20060909 Firefox/1.5.0.7
S'il n'y a pas de solution, c'est qu'il n'y a pas de problème. (devise Shadok)
Ma configuration
myahoo
Animal mythique
Messages : 8279
Inscription : 02 sept. 2005, 00:13

Message par myahoo »

Oui, tu y es presque : au lieu de faire un lien direct (onchange="window.location.href=this.options[selectedIndex].value;"), il faudrait réussir à mettre ce qui a été choisi dans une donnée A, puis pareil pour le pays avec une donnée B, et là on concatènera l'adresse du dossier, la valeur de A, un tiret, la valeur de B, et le ".htm".

Je pense avoir vu de ça sur le site d'un ami : j'y file et je reviens.
(finalement ce n'est pas si facile à trouver, beaucoup de monde prend du PHP, comme sur les forums phpBB :P )


Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.0.7) Gecko/20060909 Firefox/1.5.0.7
EmmaZL
Lézard à collerette
Messages : 245
Inscription : 07 août 2004, 00:43

Message par EmmaZL »

myahoo a écrit :Oui, tu y es presque : au lieu de faire un lien direct (onchange="window.location.href=this.options[selectedIndex].value;"), il faudrait réussir à mettre ce qui a été choisi dans une donnée A, puis pareil pour le pays avec une donnée B, et là on concatènera l'adresse du dossier, la valeur de A, un tiret, la valeur de B, et le ".htm".

Je pense avoir vu de ça sur le site d'un ami : j'y file et je reviens.
(finalement ce n'est pas si facile à trouver, beaucoup de monde prend du PHP, comme sur les forums phpBB :P )
C'est trop gentil de m'aider. :D Je vais aussi chercher un peu de mon côté.

Tu sais, si PHP est plus simple, ça me va aussi. :wink:

Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.0.7) Gecko/20060909 Firefox/1.5.0.7
S'il n'y a pas de solution, c'est qu'il n'y a pas de problème. (devise Shadok)
Ma configuration
EmmaZL
Lézard à collerette
Messages : 245
Inscription : 07 août 2004, 00:43

Message par EmmaZL »

myahoo ! J'ai trouvé quelque chose, mais je ne sais pas comment l'intégrer au formulaire :

Code : Tout sélectionner

<script type="text/javascript">

var arr = new Array(3)
arr[0] = "http://www.furet-"
arr[1] = "http://www.chien-"
arr[2] = "http://www.chat-"

var arr2 = new Array(3)
arr2[0] = "suisse"
arr2[1] = "france"
arr2[2] = "canada"

var arr3 = new Array(2)
arr3[0] = ".html"


document.write(arr[0].concat(arr2[0],arr3[0]))



</script>
Ce qui donne : http://www.barf.ch/formtest.html

Ca va le faire tu crois ? :?



Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.0.7) Gecko/20060909 Firefox/1.5.0.7
S'il n'y a pas de solution, c'est qu'il n'y a pas de problème. (devise Shadok)
Ma configuration
lpgc
Lézard à collerette
Messages : 259
Inscription : 16 juil. 2006, 01:02

Message par lpgc »

bonjour, :D

intéressant le sujet :D :D

Les 2 listes box Animaux - Pays doivent être reprises sur toutes les Pages

:arrow: en javascript : un frame avec

un frameset fixe contenant les 2 listes box
et un frameset variable contenant la page Animal_Pays.htm
dont la propiété src est changée par du JS en fonction de la valeur des listes box

:arrow: en PHP : une seule page client construite par des includes
1- include des listes box
2- include dynamique de "Animal_Pays.htm" en fonction de la form

c'est peut être pas l'idéal, mais avec mes connaissances réduites :oops:
c'est comme çà que je ferais :?

j'ai récupéré un p'tit tutorial que j'utilise pour apprendre le PHP
si çà peut être utile : http://users.coditel.net/lpgc/php/mysql ... tm#include

Cordialement
Christian

Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.0.7) Gecko/20060909 Firefox/1.5.0.7
myahoo
Animal mythique
Messages : 8279
Inscription : 02 sept. 2005, 00:13

Message par myahoo »

Effectivement, m'sieur lpgc a bien résumé : là je n'ai plus grand chose à dire :P

Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.0.7) Gecko/20060909 Firefox/1.5.0.7
calimo
Animal mythique
Messages : 14118
Inscription : 26 déc. 2003, 11:51

Message par calimo »

Bon, pour ma part je dirais que ça mérite une petite base de données, en plus ce serait un excellent exercice. :)

Tu fais une page show.php. Tu lui passe deux arguments : pays et animaux.

Par exemple, la page des furets de france sera appelée par show.php?animal=furet&pays=france.
En php, tu les récupère avec $_GET['pays'] et $_GET['animal'] si je ne me trompe pas.

Dans cette page :
  1. Tu affiches le formulaire pour choisir l'animal et le pays
  2. Si animal et pays sont indiqués, tu affiches les données
Le formulaire est tout simple, method="get" pour passer les paramètres dans l'adresse, et deux champs avec l'attribut name que tu veux récupérer par la suite (donc animal et pays). Tu peux construire les listes directement à partir du contenu de la base de données.

Pour la base de données, 3 tables : 1 table pays, 1 table animaux et une table eleveur.
La table éleveur aura comme champs, par exemple, "nom" (nom de l'élevage), "url" (l'adresse du site s'il existe), "pays" (qui référence le pays) et "animal"… c'est un peu plus compliqué vu qu'il peut y en avoir plusieurs, mais là encore, c'est un bon exercice. Au départ tu peux en mettre plusieurs séparés par des virgules ou autres, puis tu pourras créer une table intermédiaire qui fera le lien :wink:


Pour avoir des pages HTML, tu peux utiliser le mod_rewrite d'apache mais c'est d'un coup beaucoup plus compliqué, d'autant qu'un formulaire ne pourras pas t'y envoyer directement :?

L'avantage de cette technique par rapport aux frames proposées par lpgc, c'est qu'il y a une adresse fixe pour chaque page, on peut faire un marque page.
@lpgc : laisse tomber les cadres ! :wink:

Message envoyé avec : Mozilla/5.0 (X11; U; Linux i686; fr; rv:1.8.0.7) Gecko/20060909 Firefox/1.5.0.7
lpgc
Lézard à collerette
Messages : 259
Inscription : 16 juil. 2006, 01:02

Message par lpgc »

bonjour, :D et merci pour l'info concernant les frames obsolètes :D

mais maintenant c'est moi qui suis dans la panade :(

mon problème : je commençais à travailler sur l'import de DVD dans la DVDthèque
à partir d'un copy/coller d'une liste de Films dans un Textarea
OU d'un upload d'un fichier *.txt

j'ai donc une première page qui reçoit les informations ( form )

et une page donnant le résultat : un tableau dont chaque ligne contient :

le Film à importer - une check box si Film trouvé dans la base - le film trouvé OU le plus rapprochant dans la base

l'utilisateur peut décocher la check-box et dans ce cas....

j'aurais dû présenter dans un frameset une page contenant

le moteur réduit de la DVDthèque permettant de sélectionner le BON FILM
moteur réduit = Liste des films contenant les mots + Image jpeg + Réalisateur + Année du Film

Sans Frameset Comment je peux faire cela :?:

Les idées sont les bienvenues... parceque j'vois pas :!:

Merci pour l'aide :D
Christian






Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.0.7) Gecko/20060909 Firefox/1.5.0.7
calimo
Animal mythique
Messages : 14118
Inscription : 26 déc. 2003, 11:51

Message par calimo »

Euh, bon, c'est un autre sujet ça, je te conseille d'ouvrir un sujet dédié :wink:
Je ne vois pas comment tu aurais pu faire ça avec une iframe, mais bon, on verra sur un nouveau topic, là c'est celui d'EmmaZL :P

Message envoyé avec : Mozilla/5.0 (X11; U; Linux i686; fr; rv:1.8.0.7) Gecko/20060921 Firedragon/dapper-security Firefox/1.5.0.7
EmmaZL
Lézard à collerette
Messages : 245
Inscription : 07 août 2004, 00:43

Message par EmmaZL »

Merci calimo ! :wink:

Je vais essayer de digérer tout ça. J'ai mysql chez mon hébergeur alors ça devrait le faire.
En plus, ça va m'aider à apprendre un peu le PHP. :lol:

J'ai trouvé un autre truc (pas tout à fait ce que je voulais), en Javascript, mais c'est sur mon PC de la maison (là je suis au bureau). Alors dès que je peux, je vous fait un petit copier/coller du code.



Message envoyé avec : Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)
S'il n'y a pas de solution, c'est qu'il n'y a pas de problème. (devise Shadok)
Ma configuration
Répondre

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 4 invités