select apparait après selection d'un autre select

20100Leo
Invité n'ayant pas de compte PHPfrance

03 févr. 2013, 21:41

Bonjour à tous,

Je voudrais faire apparaitre un select après sélection dans un autre select qui effectue une requête SQL. Ces deux select font partie d'un formulaire. Le programme fonctionne pour tous les champs du formulaire sauf les select : le 2ème n'apparait pas. Je coince là dessus depuis un bout de temps mais je ne trouve pas. Pouvez vous m'aider ??
<?php

include('bdd.php'); //connexion à la base de données

// On sélectionne L'Id et le nom des catégories mères de la table categoriearticle
$requete1 = '   SELECT idCategorieArticle,nomCategorieArticle
                FROM categoriearticle 
                WHERE idCategorieParent=-1 
                ORDER BY nomCategorieArticle ASC';

$resultat1=mysql_query($requete1) or die('erreur de requete 1');    
echo '<form action="" method="GET" onchange="submit()";>';
    echo '<td>';
        echo '<select name="categorie" onChange="afficheSelect();">';
            echo '<option selected="selected" >Catégorie</option>';
            // On affiche les catégories
            while($tableauCategorie=mysql_fetch_assoc($resultat1))
            {
                echo '<option value="'.$tableauCategorie['idCategorieArticle'].'">'.$tableauCategorie['nomCategorieArticle'].'</option>';
            }
        echo '</select>';
    echo '</td>';
    
    
function afficheSelect()
{
    echo '<td>';
        if(isset($_GET['categorie']))
        {
            // On sélectionne les sous-catégories ayant un Id catégorie parent = Id catégorie mère
            $requete2 = '   SELECT nomCategorieArticle 
                            FROM categoriearticle 
                            WHERE idCategorieParent='.$_GET['categorie'].'
                            ORDER BY nomCategorieArticle ASC';
            $resultat2=mysql_query($requete2) or die('erreur de requete 2');
            // On affiche les sous catégories
            echo '<select name="sousCategorie">';
            echo '<option selected="selected">Sous-categorie</option>';
            while($tableauCategorie=mysql_fetch_assoc($resultat2))
            {
                echo '<option value="'.$tableauCategorie['nomCategorieArticle'].'">'.$tableauCategorie['nomCategorieArticle'].'</option>\n';
            } 
           echo '</select>';
        }
    echo '</td>';
}
echo '</form>';

mysql_close();//Ferme la connexion

?>


Petit nouveau ! | 6 Messages

03 févr. 2013, 23:01

Salut,
A ce qu'il me semble, tu fais une confusion entre PHP qui est interprété coté serveur et Javascript qui est interprété coté client.
Lorsque tu écrit : onclick='....' tu fais normalement appel à une fonction javascript alors que toi c'est une fonction php qui est donc interprétée côté serveur mais que le client ne connait donc pas.

Ce qu'il faut faire c'est donc soit :
- passer par de l'ajax
- valider le formulaire pour repasser par le serveur puis ajouter un nouveau select après validation

;)
Créateur de sites internet indépendant dans le département de l'Ain
developpement web