11521 sujets

JavaScript, DOM et API Web HTML5

Bonjour,
Je travaille actuellement sur un projet perso et j'aimerais générer un formulaire de façon dynamique en fonction des choix que fait l'utilisateur dans une liste déroulante, en fait ce que je veux faire ressemble fortement à ce qui est fait sur le site le "boncoin - https://www.leboncoin.fr", où en fonction de la catégorie choisie un formulaire de recherche différent est affiché à l'utilisateur...

Quelqu'un aurait t-il une idée d'un pattern à mettre en place ou n'importe quelle autre façon de faire pour y arriver ?

Merci d'avance.
Bonjour,

un peu de PH permettra de mettre en place le formulaire final sans difficulté, tu as des compétences en PHP ?
Salut, je suis débutant en PHP et Javascript,
Mais ma question porte surtout sur la génération du formulaire en fonction des choix de l’utilisateur sans pour le moment parler de l’envoi et du traitement coté serveur(là effectivement ça sera éventuellement du traitement PHP...), moi je cherche des idées pour le travail à faire côté client pour résoudre le problème. Smiley smile
Hello,

On peut utiliser le PHP pour générer le bon formulaire, on ne parle pas de traitement, juste afficher le formulaire correspondant au choix dans une liste déroulante. Je pense que le PHP est tout à fait indiqué, beaucoup plus simple et facile que de tenter une usine à gaz en javascript côté client.

Principe :

- on crée les n formulaires possibles dans des fichiers séparés, par exemple dans un répertoire "formulaires", et on aura

formulaires/formulaire_salade.php
formulaires/formulaire_tomates.php
...
formulaires/formulaire_oignons.php

Chaque fichier contenant un formulaire parmi tous les formulaires possibles.

- une page de choix, contenant un formulaire avec la liste déroulante, et un bouton "submit".
On appelle par exemple cette page choix.php.
Le formulaire envoie sur la deuxième page (formulaire.php), destinée à afficher le bon formulaire en fonction du choix, on a donc sur la page choix.php :

<form method="post" action="formulaire.php">


et la liste déroulante :


<select name="liste">
<option value="salade">Salade</option>
<option value="tomates">Tomates</option>
...
<option value="oignons">Oignons</option>
</select>


Après validation de son choix, l'utilisateur est renvoyé vers formulaire.php.
la variable $_POST['liste'] nous indique quelle option a été sélectionnée dans la liste déroulante, et donc quel formulaire insérer dans la page.

Il suffira d'utiliser la structure de contrôle "switch" pour choisir le formulaire à afficher,

switch ($_POST['liste']) {
    case 'salade':
        include 'formulaires/formulaire_salade.php';
        break;
    case 'tomates':
        include 'formulaires/formulaire_tomates.php';
        break;
   ...
    case 'oignons':
        include 'formulaires/formulaire_oignons.php';
        break;
}

Et c'est tout.
ensuite on pourra organiser les scripts de traitement de la même manière (scripts/formulaire_salade.php,scripts/formulaire_tomates.php, et les insérer dans la page de la même manière.
je rebondis sur le post précédent ------> et puis au pire tu pourras toujours utilisé Ajax si tu dois générer tes formulaires sans recharger la page.
Merci pour ton idée de solution, mais j'aurais deux questions:
- Ta solution en PHP ce sera bien coté serveur ?
- Pourquoi le faire en Javascript représenterais une usine à gaz ?
1 - le PHP s'exécute toujours côté serveur.

2 - Il y a quelques jours, charlydar a été aidé sur un javascript qui faisait un peu la même chose, il a pas mal transpiré pour la mise au point, voir ce post :

http://forum.alsacreations.com/topic-5-79790-1-RnsoluVerifierlecontenudeschampsmasqunaffichnsselonlechoix.html

Un tel script demandera plusieurs dizaines voire centaines de lignes de code, pas facile à maintenir, pas facile à débogguer, pas simple d'ajouter par exemple un formulaire et une option dans la liste déroulante, Il faudra bien entendu vérifier que le javascript est activé dans le navigateur client, et la page sera beaucoup plus lourde à charger, bien entendu.

C'est tout à fait possible, certes, mais la solution PHP me semble beaucoup plus simple, claire, très facile à faire évoluer, à débogguer, à commenter, etc. et nécessitant peu de connaissances en PHP, beaucoup plus accessible pour un débutant PHP et Javascript
Ce que tu peux également faire, c'est créer tes formulaires en HTML. et joué en JS avec des display none, ou des .toggle en jquery.
Merci pour toutes ces clarifications, je vais analyser tout ça avant de me lancer dans un choix. Smiley biggrin