Page 1 sur 1

Autocomplétion et champs caché

Posté : 25 août 2010, 16:41
par Tybot
Bonjour,

J'ai besoin pour une application intranet, en PHP avec une base MySQL, de faire une recherche dans des fiches de produits.

Dans la table fiche, la clef primaire est num_fiche (int), et le champs de recherche est sur le champs nom_commercial (varchar).

J'ai donc besoin de mettre le numéro de fiche dans un champs caché :
<input type="hidden" name="num_fiche" id="num_fiche" />
Mon formulaire est comme suit :
<form action="index.php" method="get" name="recherche_fiche" id="recherche_fiche">
<input type="text" name="nom_commercial" id="nom_commercial" autocomplete="off" />
<input type="hidden" name="num_fiche" id="num_fiche" />
<input type="hidden" name="page" value="Fiche" />
</form>
Quelqu'un aurai-t'il un code pour cela ?

Merci d'avance.

Re: Autocomplétion et champs caché

Posté : 25 août 2010, 17:05
par AoSiX
Tu fais l'appel en ajax ? Si oui, tu retournes un XML ou un JSON contenant les deux, puis tu fais avec..

Code : Tout sélectionner

<produits> <produit> <id>1</id> <nom_commercial>test</nom_commercial> </produit> <produit> <id>2</id> <nom_commercial>test2</nom_commercial> </produit> <produit> <id>3</id> <nom_commercial>test3</nom_commercial> </produit> </produits>
OU

Code : Tout sélectionner

{ produits:{ produit:[ { id:1, nom_commercial:'test' }, { id:2, nom_commercial:'test2' }, { id:3, nom_commercial:'test3' } ] } }

Re: Autocomplétion et champs caché

Posté : 26 août 2010, 07:57
par Tybot
Merci pour la réponse, mais c'est après le XML que je butte. J'ai un XML de la forme donnée ci-dessus mais je ne sais pas comment récupérer les id et nom en même temps.

Re: Autocomplétion et champs caché

Posté : 26 août 2010, 09:18
par Tybot
J'ai trouvé :

XML

Code : Tout sélectionner

<fiches> <fiche> <num_fiche>11></num_fiche> <nom_commercial>Tee</nom_commercial> </fiche> <fiche> <num_fiche>5></num_fiche> <nom_commercial>Test</nom_commercial> </fiche> <fiche> <num_fiche>12></num_fiche> <nom_commercial>Test 1</nom_commercial> </fiche> <fiche> <num_fiche>13></num_fiche> <nom_commercial>Test 2</nom_commercial> </fiche> </fiches>
HTML :
<script src="fct/jquery-1.4.2.min.js"></script>
<script src="fct/jquery-ui-1.8.2.custom.min.js"></script>
<link rel="stylesheet" type="text/css" href="css/redmond/jquery-ui-1.8.2.custom.css"/>
</head>

<body>
<script type="text/javascript">
	$(function() {
		function log(message) {
			$("<div/>").text(message).prependTo("#log");
			$("#log").attr("scrollTop", 0);
		}
		
		$.ajax({
			url: "xml/autocomp_fiche.php",
			dataType: "xml",
			success: function(xmlResponse) {
				var data = $("fiche", xmlResponse).map(function() {
					return {
						value: $("nom_commercial", this).text(),
						id: $("num_fiche", this).text()
					};
				}).get();
				$("#recherche_fiche").autocomplete({
					source: data,
					minLength: 0,
					select: function(event, ui) {
						document.getElementById("num_fiche").value = ui.item.id;
					}
				});
			}
		})
		
	});
</script>

<form name="recherche_fiche">
            	<input id="recherche_fiche" />
            	<input type="hidden" id="num_fiche" name="num_fiche" />
              <input type="hidden" name="page" value="Fiche"/>
</form>
Source : http://jqueryui.com/demos/autocomplete/#xml