merci les p'ti loups,
dans l'immédiat, j'ai dupliqué, je vais tester la soluce de
maelob quand j'aurai réglé mon problème initiale.
je m'explique:
en fait je suis en galère parce que je procède comme suit:
1) je construit ma page de filtre, les listes sont construitent dynamiquement avec MySQL dans un objet FORM de type :
<form method="post" name="filtres" action="" onsubmit="AppliqFiltres($Flt_lst_cps.......)">';
2) lors de la création dynamique des listes, je définis un select par défault avec 'selected'
3) DANS LA MEME page, j'affiche le résultat. (au premier chargement de la page, comme l'utilisateur n'a pas encore opéré de choix, ma requete est donc select * from table et le résultat s'affiche). Le but est que l'utilisateur affine ce résultat en opérant des choix dans les listes de filtre.
4) l'utilisateur fait ces choix et clic sur le bouton de commande de type :
echo '<input name="Filtrer" type="Submit" value="Filtrer">';
5) je récupère les valeurs via : (effectivement
BULTEZ , merci)
if (isset($_POST['lst_cps']))
{
$Flt_lst_cps = $_POST['lst_cps'];
$id_lst_cps = $_POST['textfieldcps'];
//$Flt_ID_lst_cps = $_POST['document.lst_cps.id'];
//$Filtre1 = filtres.lst_cps.value;
//echo $Filtre1.' !!! <br>';
//echo $Flt_lst_cps.'<br>';
//echo $Flt_ID_lst_cps.'<br>';
if ($Flt_lst_cps == '-')
{
$Flt_lst_cps ="%";
}
}
else {
$Flt_lst_cps ="%";
}
(je vérifie si $_POST['lst_cps'] existe car au premier chagement de la page ce n'est pas le cas)
et c'est là que ça se corse...
à ce moment là, il me réaffiche la page complète avec le résultat voulu, les filtres sont bien appliqués mais les listes sont réinitialisées et donc elles n'affichent plus le ou les choix des utilisateurs.
c'est pour cette raison que je me suis tourné vers l'éventualité d'ajouter du javascript, pour replacer les choix des utilisateurs.
j'ai retouché le code que j'avait trouvé par:
echo 'function changCPS()';
echo '{';
echo 'var Chaine;';
echo 'Chaine = document.filtres.lst_cps.options'; //on spécifie la liste a traiter
//echo '[document.filtres.lst_cps.selectedIndex].value;'; //on récupere le texte de cette liste
echo '[document.filtres.lst_cps.selectedIndex].id;'; //on récupere l' id sélectionné
//echo 'document.filtres.textfieldcps.value = Chaine.valueOf();'; //on met ce texte dans un champ texte
echo 'document.filtres.textfieldcps.value = [document.filtres.lst_cps.selectedIndex];'; //on met l' id dans un champ texte
echo '}';
ce qui me permet de récupérer aussi l' id de la liste. Mais je ne suis pas plus avancé, je ne parviens pas à replacer la liste sur les choix faits par l'utilisateur.
pour info mes listes sont créées comme suit:
print "CPS demandeur<br>
<select name='lst_cps' onChange='changCPS();'>
<option id='0' value='-' selected >NC</option>";
$slq = mysql_query('SELECT * FROM `cps`');
$i=0;
while ($donnees = mysql_fetch_array($slq) )
{
$CritereFiltreCPS = $donnees['cpsvalue'];
$i++;
echo '<option id="'.$i.'" value="'.$donnees['cpsvalue'].'" >'.$donnees['cpsname'].'</option>';
}
print "</select><br><br>
en revanche, merci, je récupère bien les choix qui me permettent de définir avec précision ma requete SQL et ainsi affiner le résultat.Pour mon principal soucis (dessus depuis 2 jours!) est ce que javascript peux m'aider ou est ce que c'est l'architecture de page qui merdouille ?
je me demande si je ne dois pas casser ma page en deux et ajouter un include en fonction d'une variable initialisé à 0:
L' include aurai pour objectif de construire les listes dynamiques au 1er chargement
0 = c'est la première fois que la page est chargée, j'app l'include
1 = la page est rechargée parce que l'utilisateur à opéré un premier filtrage et donc pas d'include
Qu'en pensez vous?
Autodidact, je ne demande qu'à apprendre... Merci de votre aide
