Perte de filtre

Amineeee
Invité n'ayant pas de compte PHPfrance

20 févr. 2007, 16:11

mon pb est que quand je lance l'explorateur et que je demande à afficher des données en se basant sur un filtre tout se passe pour le bien mais quand je change le critère de sélection le filtre n'est plus pris en considération et je ne peux effectuer un autre tri que si je lance de nouveau l'application. Bref le filtre n'est operationnel qu'une seule fois.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

20 févr. 2007, 16:36

Euh..... quel filtre ? quel critère de sélection ? trier quoi ? quelle application ? ... :-s

on pourrait avoir un peu plus d'explications ? un p'tit peu de code ? une p'tite pièce ou un ticket restaurant ? à vot' bon coeur ? :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Amineeee
Invité n'ayant pas de compte PHPfrance

20 févr. 2007, 16:48

j'affiche des demandes suivant leur origine
les demandes sont affichées à partir d'une base de données et au moment de l'affichage on vérifie si le filtre est activé pour ne prendre en considération que les demandes qui vérifient le filtre
merci d'avance

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

20 févr. 2007, 17:30

mouais.... bon.... :?

En fait faut remettre le filtre lorsque tu changes le critère de sélection ou alors le stocker en session, sinon c'est normal qu'il ne le garde pas puisque tu renvois une nouvelle requête...

voilà voilà ....

si avec ça j'ai droit à un résolu, je demande une augmentation.... ;)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Amineeee
Invité n'ayant pas de compte PHPfrance

20 févr. 2007, 18:37

les variables du filtre sont sockées en session
on passe le N° du filtre ainsi que ce filtre est activé ou pas

$output .= "<select name='numfiltre'>";
while(list($id,$nomfiltre)=mysql_fetch_row($result){
output .= "<option name='numfiltre' value='$id'>".$nomfiltre/n";}
output .= "</select>\n"
$output .= " <font size=3><b> <input name=activation_filtre value=1 type=radio> Activation</b></font>";
$output .= " <font size=3><b> <input name=activation_filtre value=2 type=radio> Désactivation </b></font>";
$output .= " <INPUT id='ButtonRechercher' value='Valider' title='Valider' type='Button' onclick='javascript:document.myfiltre.submit();' onmouseover=\"return window.status='';\">";

et après la validation du filtre


session_start();
if ($numfiltre && $activation_filtre == 1){
$_SESSION['numfiltre'] = $numfiltre;
}else if ($activation_filtre ==2){
$_SESSION['numfiltre'] = "";
}

$numfiltre = $_SESSION['numfiltre'];
et dans la suite on test sur $numfiltre

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

20 févr. 2007, 18:49

Pense à utiliser les balises
 et [code], c'est plus facile pour les relire :)

Donc en fait, si je devine bien, ton problème vient du fait que dans tes listes déroulantes, les critères sélectionnés ne sont pas réaffichés ? 

Si c'est bien cela, c'est parce qu'il te faut spécifier explicitement quelle option doit être sélectionnée en lui ajoutant l'attribut "selected". Il te suffit donc de comparer ton $id à la valeur que tu as en session (s'il y en a une) et de coller l'attribut dans l'option qui va bien pour qu'elle soit sélectionnée par défaut :)

[size=59](et si j'ai bon je mérite toujours mon augmentation ! ;))[/size]
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Amineeee
Invité n'ayant pas de compte PHPfrance

20 févr. 2007, 19:04

le pb ne vient pas du fait que les critères sont affichés ou pas dans la liste déroulante
en fait si on utilise le filtre pour la première fois seules les informations qui répondent à ce filtre sont affichées ensuite si on change le choix du filtre il n'est pas pris en compte