Formulaire pour rechercher dans bdd

poleta77 -  
forwad11 Messages postés 42 Statut Membre -
Bonjour!

Je cherche juste à savoir quel est la méthode la plus efficace et la plus pratique pour le projet que je dois faire:

-------------------------Description du projet------------------------------

J'ai créer un formulaire qui possède des champs textes, des listes déroulantes,etc...
Les listes déroulantes sont alimentés par une base de données qui ne contient qu'une seule table avec plusieurs champs.
Cette base de données répertorie des documents et elle possède un champ 'Nom', 'Redacteur', 'Emeteur', 'Destinataire',etc...

Grace au formulaire que j'ai créé, les gens vont pouvoir trouver le document qu'ils veulent en renseignant au moins un champ, ou en selectionnant au moins un élément dans une liste déroulante.

Je sais comment récupérer les valeurs qu'ils entrent mais j'ai 2 problemes:

-----------------------Probleme et Questions------------------------------

Quand quelqu'un entre des valeurs dans plusieurs champs différents afin de trouver son document le plus précisément possible, quels tests dois-je faire pour executer la bonne requete SQL? ( Par exemple: Si quelqu'un entre pour les champs 'Nom' , 'Redacteur' , 'Emetteur' les valeurs: 'Dupont', 'Toto', 'Martin' Vais-je devoir verifier par des tests if "si le Nom est bien renseigné et que Redacteur est renseigné etc puis sinon si Nom n'est pas renseigné mais que Rédacteur est renseigné etc " ?? Ca me parait bien long surtout que j'ai 15 champs!

Ensuite le 2e probleme concerne les listes déroulantes. Comment faire en sorte,de la maniere la plus simple, que si quelquun choisit un élément dans une liste 1, la liste 2 ne mettent automatiquement comme choix, que les éléments liés à la liste 1 ???

Merci beaucoup pour votre patience et pour vos éventuelles réponses!

10 réponses

poleta77
 
Je ne vois pas mon msg dans le forum alors je UP
0
Dalida Messages postés 7114 Date d'inscription   Statut Contributeur Dernière intervention   923
 
salut,

ah !!!
bravo, ordonné, complet, précis, c'est agréable à lire. tu peux juste ajouter quelques retours à la ligne et on t'érige une statut !
-:o)

quels tests dois-je faire pour executer la bonne requete SQL?
si tu veux une recherche vraiment précise, tu testes chaque champ du formulaire pour savoir si l'utilisateur à saisi quelque chose et tu fais une seule et même requête.

le mieux serait d'avoir une liste de choix 'ET/OU' entre chaque formulaire pour que l'utilisateur puisse définir des inclusions/exclusions.
mais tu peux afficher une seule liste de choix au départ avec tous les champs et un <input> pour la valeur.
ensuite un bouton 'Ajouter' pour ajouter un deuxième critère de recherche.
comme ça tu n'auras en retour que les champs remplis.

sinon tu testes tous les champs mais tu remplis un tableau avec les noms de variable et tu fais une boucle dessus avec ta vérification.

Ensuite le 2e probleme concerne les listes déroulantes. Comment faire en sorte,de la maniere la plus simple, que si quelquun choisit un élément dans une liste 1, la liste 2 ne mettent automatiquement comme choix, que les éléments liés à la liste 1 ???
tout dépend si tu as besoin d'interroger le serveur pour remplir la deuxième liste ou pas.
si tu dois requêter c'est avec Ajax, sinon tu dois pouvoir t'en sortir en Javascript.
0
forwad11 Messages postés 42 Statut Membre 1
 
Bonjour,

S'agissant de ce contrôle sur les forms, ne pas hésiter à utiliser Mootools.
Il est gratuit et très complet.
Et aussi très utilisé.
https://mootools.net/
0
poleta77
 
MDR Dalida! J'ai voulu être le plus clair possible! Merci pour ces compliments!

Pourrais-tu me donner un exemple pour ton idée de mettre juste une liste de champs avec un input à coté? Est-ce possible de faire en sorte que si je choisi le champ1, ce soit un input, alors que si je choisi le champ2, ce soit une liste déroulante?

En ce qui concerne la 2e question, j'ai besoin d'interroger le serveur pour remplir la deuxième liste et je n'y connais rien en Ajax...

forwad11: Qu'est ce que peut m'apporter mootools? car je ne connais pas, je ne sais pas comment l'utiliser

Merci
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Dalida Messages postés 7114 Date d'inscription   Statut Contributeur Dernière intervention   923
 
pour mon idée il faudrait que je te code un bout parce que je l'expliquerai jamais correctement.

pour Ajax, c'est pas bien méchant.

pour le framework de forwad11, je crois que c'est tout simplement de la bombe !
regarde le validateur du W3C (comme référence, ça va…), le formulaire beau et interactif, c'est ça !…
0
forwad11 Messages postés 42 Statut Membre 1
 
Les outils mootools c'est un bibliothèque javascript pour un enseble d'usages. Pour Ajax (c'est à dire des requêtes par la focntion des navigateurs en XMLHttpRequest). Cela évite de recharger la page entière, mais simplement les données réactualisées par une nouvelle requête. Après tu as des fonctions de contrôle sur des formulaires, de calendrier, d'images... Très très complet.
Précision: il vaut mieux comprendre un minimum l'anglais. Et puis passer un peu de temps à se familiairiser avec... Mais bon, une fois que tu charges tes bibliothèques, ça va assez vite...
0
forwad11 Messages postés 42 Statut Membre 1
 
Pardon pour l'orthographe, il faut que je change de clavier, il m'oublie parfois des caractères au passage...
0
poleta77
 
up!
0
Dalida Messages postés 7114 Date d'inscription   Statut Contributeur Dernière intervention   923
 
ben qu'est-ce qui se passe ?
0
poleta77 > Dalida Messages postés 7114 Date d'inscription   Statut Contributeur Dernière intervention  
 
J'ai fait un Up car vous ne répondiez pas mais le temps que le message s'affiche, vous aviez déja répondu!
0
Dalida Messages postés 7114 Date d'inscription   Statut Contributeur Dernière intervention   923
 
plutôt que de te faire un exemple je vais tester mootools.
en fait c'est juste un petit script, plus de 7 000 lignes…
-:oD

>>forwad11 : je vais te retourner le compliment !
0
forwad11 Messages postés 42 Statut Membre 1
 
Courage! C'est une paille pour toi!
0