PHP Filtre multiple - stock de plusieurs var

Fermé
Souris - 16 févr. 2009 à 09:47
 richycunningham - 2 sept. 2009 à 16:28
Bonjour à tous,

Je débute en php et je bloque sur un problème d'envois de variables.

Dans une balise <form> j'ai trois liste déroulantes (editeur, auteur et type). Je souhaiterais faire un filtre multiple pour afficher toutes les ressources par sélection d'éditeur, mais également par auteur ou type si ces dernières ont été sélectionnées.

En gros, j'aimerais bien que dans mon URL j'obtienne quelque chose comme ça : http://localhost/db_ressources/rsc_view.php?id_auteur=3&id_editeur=1&id_type=2.

Pour l'instant, j'obtiens à chaque changement, quelque chose comme ça :
http://localhost/db_ressources/rsc_view.php?id_auteur=3
http://localhost/db_ressources/rsc_view.php?id_editeur=1
http://localhost/db_ressources/rsc_view.php?id_type=2

A chaque fois que je sélectionne une valeur dans une autre liste déroulante, je perds la première valeur


Voici le code de mon form :

Le tableau html est mis à jour sur changement (onChange="MM_jumpMenu('parent',this,0)) à l'aide d'un script java appelé par la fonction MM_jumMenu.

<form name="frmLst" >
<select name="lstEditeur" onChange="MM_jumpMenu('parent',this,0)" >
<option value="rsc_view.php?id_editeur=0">Sélectionner un éditeur</option>
<option value="rsc_view.php?id_editeur=0">Tous</option>
<?php
$query=mysql_query("SELECT * FROM tbl_editeur ORDER BY editeur");
while ($rec=mysql_fetch_array($query)) {
echo "<option value='rsc_view.php?id_editeur=".$rec["id_editeur"]."'>" .$rec["editeur"]."</option>";
}
?>
</select>
<select name="lstAuteur" onChange="MM_jumpMenu('parent',this,0)" >
<option value="rsc_view.php?id_auteur=0">Sélectionner un auteur</option>
<option value="rsc_view.php?id_auteur=0">Tous</option>
<?php
$query=mysql_query("SELECT * FROM tbl_auteur ORDER BY auteur");
while ($rec=mysql_fetch_array($query)) {
echo "<option value='rsc_view.php?id_auteur=".$rec["id_auteur"]."'> " .$rec["auteur"]."</option>";
}
?>
</select>
<select name="lstType" onChange="MM_jumpMenu('parent',this,0)" >
<option value="rsc_view.php?id_type=0">Sélectionner un type</option>
<option value="rsc_view.php?id_type=0">Tous</option>
<?php
$query=mysql_query("SELECT * FROM tbl_type ORDER BY type");
while ($rec=mysql_fetch_array($query)) {
echo "<option value='rsc_view.php?id_type=".$rec["id_type"]."'>" .$rec["type"]."</option>";
}
?>
</select>

</form>


Le problème vient (à mon avis) du fait que lorsque je sélectionne une autre valeur dans une autre liste déroulante, la première valeur est perdue et ne peut, de ce fait, plus être utilisée. Est-il possible de la stocker ?

Merci énormément d'avance pour aide, ça fait plusieurs jours que je bloque.
A voir également:

1 réponse

Si ça aide, voici le JavaScript qui est appelé avec le OnChange.

<script language="JavaScript" type="text/JavaScript">
<!-- ce script permet la mise à jour auto sur sélection de la liste déroulante
function MM_jumpMenu(targ,selObj,restore){ //v3.0
eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
if (restore) selObj.selectedIndex=0;
}
//-->
</script>
0
richycunningham
2 sept. 2009 à 16:28
Bonjour,
As-tu trouvé une solution à ton problème ?
0