begin process at 2012 05 30 15:20:59
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Base de données

 > 

Access

 > 

Liste déroulantes à la suite


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Liste déroulantes à la suite

dimanche 16 mai 2010 à 15:29:11 | Liste déroulantes à la suite

nat29

Membre Club
Bonjour,

C'est la première fois que je poste une question sur ce forum parce que je pense avoir tout essayé avant.

J'essaye depuis une semaine de créer une page en php avec plusieurs listes déroulantes qui s'actualisent au fur et à mesure. Lorsque je fais mon choix dans la première listbox, la 2ème prend bien les valeurs demandées (via une base access et les fonctions odbc_exec...), le choix et bien gardé en mémoire après reload (selected="selected") mais lorsque je choisis une valeur dans la 2ème listbox la première variable est oubliée et donc la seconde aussi.

Voici mon code:

<?php
$produit = isset($_POST['produit'])?$_POST['produit']:null;
$type = isset($_POST['type'])?$_POST['type']:null;

//connexion à une base de données ACCESS
$bd="nom_base"; // identifiant DSN
$user="root"; // login
$password=""; // password
$cnx = odbc_connect( $bd , $user, $password );
if($cnx){

$tablelist = odbc_tables($cnx);
while (odbc_fetch_row($tablelist)) //tant que c'est pas la fin de la table
{
if (odbc_result($tablelist, 3) == "TABLE") // Si indicateur TABLE
echo odbc_result($tablelist, 3); // Affiche nom de la TABLE
}

$valeur= odbc_exec( $cnx, "select distinct produit FROM T_Produits" ); //requête
?>
<form action="<?php echo($_SERVER['PHP_SELF']); ?>" method="post" id="list_prod">
<select name="produit" id="produit" onchange="document.forms['list_prod'].submit();">
<option value="-1">- - - Choisissez un produit- - -</option>
<?php
$i=1;
while(odbc_fetch_row($valeur)) //tant que c'est pas la fin de la table
{
if(isset($produit) && $produit == $i) {
$select_prod = odbc_result( $valeur, 1 );
echo '<option value='.$i.' selected="selected">'.odbc_result( $valeur, 1 ).'</option>'; }
else {
echo '<option value='.$i.'>'.odbc_result( $valeur, 1 ).'</option>'; }
$i++;
}
echo '</select>';
echo '</form>';
?>
<script>
function soumettre() {
document.forms['list_type'].submit();
document.forms['list_prod'].submit();
}
</script>
<form action="<?php echo($_SERVER['PHP_SELF']); ?>" method="post" id="list_type">
<select name="type" id="type" onchange="javascript:soumettre()">
<option value="-1">- - - Choisissez une qualite- - -</option>
<?php
$j=1;
if (isset($select_prod)) {
$valeur2 = odbc_exec( $cnx, "select distinct Qualite FROM T_Produits WHERE Produit ='$select_prod'" ); //requête
while(odbc_fetch_row($valeur2)) //tant que c'est pas la fin de la table
{
if(isset($type) && $type == $j) {
$select_type = odbc_result( $valeur2, 1 );
echo '<option value='.$j.' selected="selected">'.odbc_result( $valeur2, 1 ).'</option>'; }
else {
echo '<option value='.$j.'>'.odbc_result( $valeur2, 1 ).'</option>'; }
$j++;
}
}
echo '</select>';
echo '</form>';

}
else{
echo "Impossible de se connecter à la base de données";
}
odbc_close( $cnx); // ferme la connexion
?>

Quelqu'un aurait il une idée de la solution? Pour info ma fonction soumettre() ne soumet que la deuxième ligne à chaque fois (je pense que le probleme vient de la mais je peux me tromper)

Merci de votre aide
lundi 17 mai 2010 à 15:33:13 | Re : Liste déroulantes à la suite

kohntark

Membre Club

Salut,

Je suis passé très, très vite sur le code (manque de temps).

Tu devrais plutôt passer par Ajax pour ce genre de chose. Contrairement à ce que certains pourraient penser c'est assez simple à mettre en oeuvre et ça amène de nombreux avantages en travaillant avec le DOM (ou non d'ailleurs)

En fouillant un peu dans les codes du site tu trouveras ton bonheur, il me semble d'ailleurs que NeigeDhiver avait fait un tuto là dessus.

Cordialement,


Kohntark -

lundi 17 mai 2010 à 15:52:19 | Re : Liste déroulantes à la suite

nat29

Membre Club
Salut,

Merci d'avoir pris le temps de me répondre mais j'ai trouvé la solution quelques heures après avoir posté ma question.
Pour ceux que ca peut intéresser, il s'agissait simplement de ne laisser qu'un seul form et mettre des onchange="submit(this);" dans chaque select.

A bientôt


Cette discussion est classée dans : odbc, echo, list, result, déroulantes


Répondre à ce message

Sujets en rapport avec ce message

recuperer l'element selectionner d'une liste [ par anouar ] bonjour ,je suis debutant en php et je cherche de l'aide sur le code suivantmerci d'avance pour vos reponses voici le code Problème Requête avec les conditions Where [ par hajar2809 ] Bonjour,Pour réaliser mon projet de stage, je dois créer une connexion entre une base de données access et PHP.Tout se passe bien tant que je ne mets Erreur formulaire [ par flopad ] Bonjour,j'ai une base de données qui contient un annuaire interne. J'ai donc une page qui me permet via un masque de saisie de rentrer mes infos dans Faire un while qui affiche un tableau [ par elriser ] Bonjour, Ci dessous je vous met ma page ou se trouve mes while Mon souci avec cette méthode j'ai un affichage de tableau sans ligne.Ma question que do Requete SQL qui marche pas en PHP [ par 6xavier6 ] Bonjour,Alors j'ai un problème avec une requête SQL, au premier chargement de ma page la requête est exécuter correctement mais quand je la recharge, php [ par marocmarocmaroc ] Salut;problème presque déjà posé mais je ne sais pas l'analyser voilà le code:j'explique mon problème:dans ma page j'ai deux listes déroulantes et deu affichage sur plusieurs page [ par piteur30 ] bonjourmon livre d'or est bientôt terminer et sa grâce a votre aidej'aurai encore besoin de votre aide pour afficher 10 messages par pageet ensuite qu tableau des membres (fonction modifier et suprimer de la basse) [ par piteur30 ] bonjourj'ai aficher toute les doner de mon tableau membre dans un tableau par se script :$host = 'serveur';$user = 'login';$pass = 'mot de passe'; acharnement php/mysql [ par seb76250 ] Bonjour a tous, je suis en formation informatique et j'essaie de comprendre le langage php et la gestion de base sql (ce qui n'est pas simple) J'avoue probléme avec mysqli [ par youma85 ] salut tous le monde j'ai un probléme avec la fonction mysqli, la connexion marche avec mysqli_connect(.....) mais le probléme se pose mysqli_free_resu


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,061 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales