5546 sujets

Sémantique web et HTML

Mesdames, Messieurs, bonjour.

Je viens à vous car je me pose une question, et je n'ai pas pu trouver de réponses pertinentes sur Internet. Je suis en effet confronté à un problème relativement simple à comprendre (je pense).

Je dispose, dans un cockpit, que je développe, d'une page de recherche. Celle-ci permet de rechercher via des formulaires séparés :
- des commandes
- des clients
- des articles

Je travaille sur un framework fait maison qui utilise smarty. Cette fameuse page de recherche se présente donc sous la forme de plusieurs includes intégrant les différents formulaires :


<h1>Consultation</h1>

{include file='consult/_formulaireCommandes.tpl'}
{include file='consult/_formulaireClients.tpl'}
{include file='consult/_formulaireArticles.tpl'}

<div class="recherche" id="rechercheCroisee">
	<h2>Recherche crois&#233;e</h2>
	<form>
	...
	<input type="submit" value="Croiser" />
	</form>
</div>

Pour information, même si ça se devine, voici le contenu d'un de ces includes :

<div class="recherche" id="rechercheCommandes">
	<!-- formulaire standard -->
	<h2>Recherche de commandes</h2>

	<form id="formulaireCommandes" method="post" action="?mod={$mod}&page=commande">
		...
		<input type="submit" value="Rechercher" />
	</form>
</div>


Ma question est :
Est-il possible, par un moyen quelconque, de récupérer simultanément les données remplies dans les 3 formulaires ? (recherche croisée, donc en soumettant via le formulaire "rechercheCroisee")

Dans le cas où c'est impossible :
Est-ce que, pour conserver les fonctionnalitées actuelles, la création d'un formulaire unique avec plusieurs boutons de soumission est une bonne idée ? (en utilisant une technique du style : un formulaire avec plusieurs boutons.)

Merci Smiley smile
Modifié par raymitronic (13 Aug 2007 - 17:04)
Bonjour,

Je viens de faire le teste en vitesse sur 2 formulaire pour etre sûr. Et non tu peux pas recupere les infos d'un autre fomulaire.

Ensuite pour savoir s'il faut faire un gros formulaire avec des boutons spécifique pour chaque je ne sais pas. Pour ma part j'aurai sans doute utiliser des boutons radio pour laisser à la personne le choix de choisir ou il voudrai rechercher.
Salut Smiley cligne ,

et pourquoi pas un seul "gros" formulaire avec un seul bouton contenant toutes les données que tu décortiques après (Si N° Commande ET Id Client ALORS ...) ?
Je suppose que tu songes à un formulaire unique, dans lequel on indiquerait si on souhaite faire une recherche :
- de commandes
- de clients
- d'article
(la recherche croisée renvoie une liste de commandes)
- de commandes incluant tel article
- de commandes de tel(s) client(s) ayant commandé tel(s) article(s)
- de commandes de tel(s) client(s) ayant passé telle(s) commande(s)
- de telle(s) commande(s) de tel client incluant(s) tel(s) articles(s)

Je sais pas si je me fais bien comprendre avec ça. Smiley langue

Des radio-buttons, oui, j'y ai pensé mais c'est pas très élégant. Et surtout, ça invaliderait certains champs, en fonction du type de recherche réalisée. Ceci pourrait être une éventuelle source d'erreur pour les utilisateurs, qui rempliraient un mauvais champ.

Heyoan, ta solution est bonne, et envisageable, mais pas forcément optimale, étant donné que ça charge un peu plus le code de multiples tests. D'autant plus que là aussi, si l'utilisateur remplit un champ censé être inutile pour la recherche qu'il souhaite faire, ça risque d eposer des problèmes.
Tu as aussi les checkbox tu separes ton formulaire en 3 et chaque parti a son checkbox. Si tu separes bien tes formulaires ca devrai pas etre source d'erreur.

Avec un petit peu de javascript pour cocher le checkbox si la personne rempli un champ en l'avertissant..

Mais je suis d'accord que dans tout les cas ca augmentera ta charge de verification.

Sinon tu crées un nouveau formulaire pour faire une recherche sur tout.
Si le script est censé tourner en entreprise (ce que je suppose Smiley langue ), un compromis pourrait être de rajouter une surcouche javascript (ou mieux encore Ajax) qui avertirait des sélections incompatibles.

Bref encore du code en plus (d'autant qu'il faudra quand même refaire ces tests côté serveur) mais bon ! L'utilisateur est roi ! Smiley lol
Je vois Smiley smile

Et vous pensez que ma solution de formulaire unique avec plusieurs boutons de soumission, tout en séparant les parties à séparer, c'est vilain ?

Un petit peu de Javascript ou d'Ajax pourrait effectivement être sympa. Je travaille déjà en Ajax, donc pas de soucis à ce niveau là.

Et oui, ça tourne bel et bien en entreprise. Smiley cligne
Ben c'est même pas que ce soit vilain mais je trouve ça assez déconcertant : si j'ai par exemple un seul formulaire avec 3 parties distinctes (histoire de récupérer tous les champs quelle que soit la recherche demandée), je ne vois pas pourquoi je renseignerais un code client alors que je vais cliquer sur "Rechercher Commande" Smiley rolleyes . A moins que je n'ai pas compris un truc ! Smiley murf
Effectivement, voilà un bon argument Smiley cligne

Donc je vais faire un formulaire unique :


<form id="formulaireConsultations" method="post" action="?mod={$mod}&.....">
	
	<label for="cmd">Commande : </label>
	<input type="text"  id="cmd" name="params[cmd]" value="{$params.cmd}" />
			
	<label for="client">Client : </label>
	<input type="text"  id="client" name="params[client]" value="{$params.client}" />
			
	<label for="article">Article : </label>
	<input type="text"  id="article" name="params[article]" value="{$params.article}" />

	<input type="submit" value="Rechercher" />
		
</form>


Et je testerai dans le PHP. En fait, tous les autres champs ne sont que des Select donc je n'ai pas à les tester.

Ca me semble pas mal Smiley smile
Merci à vous !
Modifié par raymitronic (13 Aug 2007 - 16:49)