Précédent   Forum des professionnels en informatique > PHP > Langage > Formulaires
Formulaires Forum d'entraide sur les formulaires avec PHP. Avant de poster -> FAQ formulaires, Cours de formulaires et Sources de formulaires
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 15/12/2010, 09h34   #1
Invité de passage
 
Inscription : juin 2008
Messages : 11
Détails du profil
Informations forums :
Inscription : juin 2008
Messages : 11
Points : 3
Points : 3
Par défaut Affiner un affichage en fontion de plusieurs listes deroulantes

Bonjour,

Je viens vers vous car je ne sais pas du tout comment m'y prendre.
Je cherche à faire un "recherche multicritères" via des listes déroulantes sur mon site en php/mysql.
J'ai 4 listes déroulantes (non liées) qui correspondent à une requête SQL et qui rafraîchissent l'affichage des résultats dés qu'on sélectionne un élément.

Je souhaiterais que lorsque 1 élément de liste A est sélectionné, si un élément de la liste B est choisi, la recherche s'affine et ainsi de suite.
Sachant que des listes ne sont pas forcément utilisées.

Je crois qu'il faut stocker les valeurs choisies dans des variables JavaScript ou un truc comme ça mais je ne vois pas trop comment

Pour l'instant tout marche séparément.
Si vous avez besoin je peux mettre des bouts de code.

Merci d'avance pour votre aide.

Cordialement,

Armelita
Memelo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/12/2010, 09h45   #2
Membre Expert
 
Inscription : avril 2006
Messages : 1 338
Détails du profil
Informations personnelles :
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : avril 2006
Messages : 1 338
Points : 1 315
Points : 1 315
Regarde d'abord dans les faq javascript ou php de developpez.com
__________________
Stay in Bed .. Save Energy
boo64 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/12/2010, 11h15   #3
Invité de passage
 
Inscription : juin 2008
Messages : 11
Détails du profil
Informations forums :
Inscription : juin 2008
Messages : 11
Points : 3
Points : 3
Bonjour
Ben c'est que j'ai fais mais j'ai pas trop trouvé de réponse à ma question.
Je suis débutante et en fait il me manque un peu l'algorithmie du processus.

Je crois qu'il faut stocker les valeurs de mes listes déroulantes dans des variables javascript mes après je sèche...

Si j'arrive à trouver la marche à suivre je pense qu'au niveau du code je pourrais m'en sortir.

Merci
Memelo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/12/2010, 11h24   #4
Membre Expert
 
Inscription : avril 2006
Messages : 1 338
Détails du profil
Informations personnelles :
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : avril 2006
Messages : 1 338
Points : 1 315
Points : 1 315
Alors listes liées en php:
http://php.developpez.com/sources/?p...ms#listesliees

en javascript:
http://javascript.developpez.com/faq...js#listesLiees

en ajax
http://siddh.developpez.com/articles/ajax/

ensuite les différences: php c'est coté serveur cela oblige à reafficher la page.

en javascript: coté client pas besoin de réactualisé

en ajax : méthode que je préfère mais peux être plus dur à comprendre dans son fonctionnement
__________________
Stay in Bed .. Save Energy
boo64 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/01/2011, 18h05   #5
Invité régulier
 
Inscription : janvier 2011
Messages : 10
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 10
Points : 9
Points : 9
Je ne sais pas si ton problème est réglé, mais voici une rapide proposition de code pour ton souci
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
 
<form action="index.php" method="Post" name="IndexForm" id="IndexForm">>
<label for="SelectA">Select A : </label>
	<select  id="SelectA"  class="SelectA" name="SelectA">
				<option value="0">Aucune Selection</option>
				<option value="1" >Option1</option>
    			<option value="2" >Option2</option>
    			<option value="2" >Option3</option>
	</select>
 
	<label for="SelectB">Select B : </label>
	<select  id="SelectB"  class="SelectB" name="SelectB">
				<option value="0">Aucune Selection</option>
				<option value="1" >Option1</option>
    			<option value="2" >Option2</option>
    			<option value="2" >Option3</option>
	</select>
 
	<input type="submit" value="envoyer">
</form>
 
<?php
$WhereSQL = Array();
$Index=0;
 
if (isset ($_POST['SelectA']) and ! is_null ($_POST['SelectA']))
{
	switch ($_POST['SelectA'])
	 {
		case "1" : $WhereSQL [$Index] = " B = 'Option1'";
					$Index ++;
					Break;
        case "2" : 	$WhereSQL [$Index] = " B = 'Option2'";	
			.....
			...
			..
	 } 
}
 
if (isset ($_POST['SelectB']) and ! is_null ($_POST['SelectB']))
{
	....
	....
	....
 
 
}
 
$sql = "select * from Table "
if (isset $WhereSQL[0])
{
	$sql .= " Where ";
	foreach  ($WhereSQL as $key => $value)
	{
		$sql .= $value." AND ";
	}
	$sql= substr($sql, 0, -3);
}
 
?>
Bien sur , on peux faire quelque chose de mieux en évitant tous les switch
en fonction de tes DATA.


Cordialement
Davonex est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 02h21.


 
 
 
 
Partenaires

Hébergement Web