recuperation post liste déroulante

Eléphant du PHP | 388 Messages

09 mai 2010, 17:17

bonjour a tous,
Sur mon site j'ai mit en place deux liste de menu déroulante qui sont lié entre elle.
Quand je clic sur mon bouton Filtré cela doit me rediriger vers la page désiré

le problème c'est j'arrive a récuperer le nom de la ville je n'arrive pas a récuperer la categorie et la sous categorie je la recuperer sous forme de l'ID dans l'enregistrement alors qu'il devrait avoir le nom de la sous*categorie.

les posts que je recupere sont :
$departement=$_POST['departement'];
$categorie=$_POST['categorie'];
$nom_souscategorie = $_POST['souscategorie'];
et voici mon script de ma premiére page
<?php
$idr = isset($_POST['categorie'])?$_POST['categorie']:null;
?>
<?php
if(isset($_POST['ok']) && isset($_POST['souscategorie']) && $_POST['souscategorie'] != "")
{
    $categorie_selectionnee = $_POST['categorie'];
    $souscategorie_selectionne = $_POST['souscategorie'];
?>

<?php
}
?>
<div id="listederoulante2">
<?php
	
$connexion = mysql_pconnect($serveur, $admin, $mdp);
if($connexion != false)
{
    $choixbase = mysql_select_db($base, $connexion);
    $sql1 = "SELECT `id_categorie`, `categorie`".
    " FROM `categorie`".
    " ORDER BY `id_categorie`";
    $rech_categorie = mysql_query($sql1);
    $code_categorie = array();
    $categorie = array();
    $nb_categorie = 0;
    if($rech_categorie != false)
    {
        while($ligne = mysql_fetch_assoc($rech_categorie))
        {
            array_push($code_categorie, $ligne['id_categorie']);
            array_push($categorie, $ligne['categorie']);
            $nb_categorie++;
        }
    }
	
    ?>


<form action="<?php echo($_SERVER['PHP_SELF']); ?>" method="post" id="chgscat">

<select name="categorie" id="categorie" onchange="document.forms['chgscat'].submit();">
  <option value="-1">- - - Choisissez une categorie - - -</option>
    <?php
    for($i = 0; $i < $nb_categorie; $i++)
    {
?>
  <option value="<?php echo($code_categorie[$i]); ?>"<?php echo((isset($idr) && $idr == $code_categorie[$i])?" selected=\"selected\"":null); ?>><?php echo($categorie[$i]); ?></option>
<?php
    }
    ?>
</div>
</select>
</form>

<div id="listederoulante">
<form id="ok" method="post" action="lienmenuderoulant.php">
    <?php
    mysql_free_result($rech_categorie);
    if(isset($idr) && $idr != -1)
    {
       $sql2 = "SELECT `id_souscategorie`, `souscategorie`".
        " FROM `souscategorie`".
        " WHERE `id_categorie` = ". $idr ."".
        " ORDER BY `id_souscategorie`;";
        if($connexion != false)
        {
            $rech_souscategorie = mysql_query($sql2, $connexion);
            $nd = 0;
            $code_souscategorie = array();
            $nom_souscategorie = array();            
            while($ligne_souscategorie = mysql_fetch_assoc($rech_souscategorie))
            {
                array_push($code_souscategorie, $ligne_souscategorie['id_souscategorie']);
                array_push($nom_souscategorie, $ligne_souscategorie['souscategorie']);
                $nd++;
            }
            ?>
<select name="souscategorie" id="souscategorie">
            <?php 
            for($d = 0; $d<$nd; $d++)
            {
                ?>
  <option value="<?php echo($code_souscategorie[$d]); ?>"<?php echo((isset($souscategorie_selectionne) && $souscategorie_selectionne)?" selected=\"selected\"":null); ?>><?php echo($nom_souscategorie[$d].""); ?></option>

                <?php
            }
?>
</select>
<?php
        } 
        mysql_free_result($rech_souscategorie);
    }
?>
</div>
<br />
<select name="departement" id="departement">
<option value="0">Votre département</option>
<option value="loireatlantique">Loire Atlantique</option>
<option value="maineetloire">Maine et loire</option>
<option value="mayenne">Mayenne</option>
<option value="sarthe">Sarthe</option>
<option value="vendee">Vendée</option>
</select>


<input type="submit" name="ok" id="ok" value="Je filtre" />
</form>
<?php
    /* Terminé, on ferme la connexion */
    mysql_close($connexion);
}
else
{
?>
<p>Un incident s'est produit lors de la connexion à la base de données, veuiillez essayer à nouveau ultérieurement.</p>
<?php
}
?>
Donc les poste que je récuperer porte peut etre pas le bon nom ? je ne comprend pas trop ou est le problème

Eléphant du PHP | 74 Messages

09 mai 2010, 21:20

Bonsoir,

A priori, tu as deux formulaire, la catégorie est dans un formulaire et ton bouton submit est sur le deuxieme formulaire.

Donc un clic sur "Je filtre" soumettra uniquement le form du nom de la ville (et donc pas la catégorie).