IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

contenu de deux menus [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre régulier
    Inscrit en
    Novembre 2008
    Messages
    431
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 431
    Points : 79
    Points
    79
    Par défaut contenu de deux menus
    bonjour,

    j'ai :
    - menu de selection 1, qui est renseigné par une requete :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Select distinct IdContinent, LibelléContinent From TableContinent
    - menu de selection 2, qui est renseigné par une requete :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Select distinct IdPays, LibelléPays From TablePays
    - et une table Mysql (ContinentPays) qui contient : IdContinent et IdPays.

    dans ma page (.php) j'affiche les 2 menus : Continent et Pays,

    je souhaite au moment où je choisis un Continent dans le MenuContinent, le MenuPays se mets à jour directement en n'affichant que les Pays du Continent que j'ai sélectionné dans le premier Menu.

    comment faire ceci?

    merci par avance

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 349
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 349
    Points : 1 460
    Points
    1 460
    Par défaut
    oriente toi vers ajax
    Stay in Bed .. Save Energy

  3. #3
    Membre régulier
    Inscrit en
    Novembre 2008
    Messages
    431
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 431
    Points : 79
    Points
    79
    Par défaut
    ajax!!!!

    ya pa un truc plus simple?

  4. #4
    Membre expérimenté
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 349
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 349
    Points : 1 460
    Points
    1 460
    Par défaut
    si
    soit en js
    soit en php ms cela implique un rechargement de la page
    Stay in Bed .. Save Energy

  5. #5
    Membre régulier
    Inscrit en
    Novembre 2008
    Messages
    431
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 431
    Points : 79
    Points
    79
    Par défaut
    Bonjour,

    j'arrive pas à recuperer la Max(Id):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $Requete = mysql_query("SELECT Max(Id) AS MaxId FROM MaTable"); 
      $row = mysql_result($Requete );
      echo "===> ".$row ;
    une idée?

    merci

  6. #6
    Membre expérimenté
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 349
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 349
    Points : 1 460
    Points
    1 460
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $Requete = mysql_query("SELECT Max(Id) AS MaxId FROM MaTable");
    $row = mysql_result($Requete );
    echo '===> '.$row['MaxId '];
    Stay in Bed .. Save Energy

  7. #7
    Membre régulier
    Inscrit en
    Novembre 2008
    Messages
    431
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 431
    Points : 79
    Points
    79
    Par défaut
    j'ai essayé avec ca m'affiche ce message d'erreur :
    Warning: mysql_result() expects at least 2 parameters, 1 given in C:\Program Files\EasyPHP-5.3.6.0\www\add_cpt.php on line 39 =

    la ligne 39 est celle ci =>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $row = mysql_result($Requete );

  8. #8
    Membre régulier
    Inscrit en
    Novembre 2008
    Messages
    431
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 431
    Points : 79
    Points
    79
    Par défaut
    Citation Envoyé par boo64 Voir le message
    si
    soit en js
    soit en php ms cela implique un rechargement de la page
    sera t'il possible de donner un exemple simple pour comprendre le principe avec js...

    merci

  9. #9
    Membre éclairé

    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2011
    Messages
    411
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 411
    Points : 735
    Points
    735
    Par défaut
    Citation Envoyé par laure07 Voir le message
    ajax!!!!

    ya pa un truc plus simple?
    Vous connaissez JS ? Vous connaissez PHP ? Vous pouvez faire de l'AJAX. C'est pas dur et une fois que vous connaissez le principe et la syntaxe, vous ne pourrez plus vous en passer.

    Citation Envoyé par laure07 Voir le message
    ca m'affiche ce message d'erreur :
    Warning: mysql_result() expects at least 2 parameters, 1 given in C:\Program Files\EasyPHP-5.3.6.0\www\add_cpt.php on line 39 =

    la ligne 39 est celle ci =>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $row = mysql_result($Requete );
    Il faut lire la doc : http://php.net/manual/fr/function.mysql-result.php
    mysql_result prend 2 paramètres :
    1. Le resultat de mysql_query()
    2. La ligne à prendre en compte

    Il manque donc la ligne dans votre script :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $row = mysql_result($Requete, 0);
    Citation Envoyé par laure07 Voir le message
    sera t'il possible de donner un exemple simple pour comprendre le principe avec js...

    merci
    Avec uniquement du js, il va vous falloir charger la liste des continents (comme normalement) et mettre un event-handler sur le changement de cette liste pour afficher une des 5 listes (il y a bien 5 continents déjà ? Je sais plus) déjà préchargées mais cachées (grâce aux CSS).
    Je suis fervent utilisateur de PHP et de jQuery.
    Après des études de graphisme, j'ai décidé de mélanger développement web et web design. J'ai ainsi donc créé mon site web de développeur web dans le Val d'Oise mais aussi plusieurs projets personnels.
    Dans les plus aboutis, vous pourrez trouver dans mon labo et dans mon devblog, une extension de navigateur pour envoyer l'URL de la page actuelle vers votre email pour lire plus tard ou sauvegarder, mon générateur de template HTML5, etc…

  10. #10
    Membre expérimenté
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 349
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 349
    Points : 1 460
    Points
    1 460
    Par défaut
    Complétement d'accord avec Shikiryu autant pr moi avec le mysql_result repondu trop vite

    sinon j’espère aussi que tablepays à bien une colonne id_continent
    Stay in Bed .. Save Energy

  11. #11
    Membre régulier
    Inscrit en
    Novembre 2008
    Messages
    431
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 431
    Points : 79
    Points
    79
    Par défaut
    toujour bloquée sur le contenut du deuxieme menu de selection, qui doit dependre du choix fait dans le premier menu.

    est il possible de me communiquer le code permettant de faire ceci.

    merci par avance

  12. #12
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2008
    Messages : 105
    Points : 109
    Points
    109
    Par défaut
    Salut, comme cela a été dit plus haut, ajax est la meilleure solution pour ton prb.
    Le principe c'est que ds l'évènement Onchange de ton premier select, tu mets une procédure javascript qui va appeler une page php "en arrière-plan", avec comme paramètre l'id de ton continent. Celle-ci génère le nouveau select avec uniquement les valeurs (pays) associées à ton id et est renvoyé dans la fonction javascipt qui l'avait appelée. Ensuite , à l'aide d'un innerHTML, tu replaces le nouvel élément dans ta page.

    Côté base de données, il faut que tu aies un idcontinent dans ta table pays, qui lie les enregistrements pays et continent.

    Voici l'adresse d'un tuto, qui explique très bien comment lier des listes avec ajax.
    http://siddh.developpez.com/articles/ajax/#LIV-A . Si la syntaxe du code js est un peu dure à digérer au début, une fois le principe compris, cela va comme une lettre à la poste. Tu peux aussi utiliser JQUERY pour formuler tes requêtes ajax, c'est plus court à coder

    Alpha.

  13. #13
    Membre régulier
    Inscrit en
    Novembre 2008
    Messages
    431
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 431
    Points : 79
    Points
    79
    Par défaut
    Citation Envoyé par alpha232 Voir le message
    Salut, comme cela a été dit plus haut, ajax est la meilleure solution pour ton prb.
    Le principe c'est que ds l'évènement Onchange de ton premier select, tu mets une procédure javascript qui va appeler une page php "en arrière-plan", avec comme paramètre l'id de ton continent. Celle-ci génère le nouveau select avec uniquement les valeurs (pays) associées à ton id et est renvoyé dans la fonction javascipt qui l'avait appelée. Ensuite , à l'aide d'un innerHTML, tu replaces le nouvel élément dans ta page.

    Côté base de données, il faut que tu aies un idcontinent dans ta table pays, qui lie les enregistrements pays et continent.

    Voici l'adresse d'un tuto, qui explique très bien comment lier des listes avec ajax.
    http://siddh.developpez.com/articles/ajax/#LIV-A . Si la syntaxe du code js est un peu dure à digérer au début, une fois le principe compris, cela va comme une lettre à la poste. Tu peux aussi utiliser JQUERY pour formuler tes requêtes ajax, c'est plus court à coder

    Alpha.
    merci BCP Alpha...c cette reponse que je cherchais...merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MenuItems] Merger deux menus à la main
    Par Manopower dans le forum Delphi
    Réponses: 3
    Dernier message: 13/12/2006, 13h43
  2. Décalage contenu de deux cellules
    Par Sayrus dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 31/10/2006, 12h31
  3. Comparer le contenu de deux requêtes
    Par Floch dans le forum Access
    Réponses: 2
    Dernier message: 04/05/2006, 11h43
  4. comparer le contenu de deux tables?
    Par sessime dans le forum Requêtes
    Réponses: 5
    Dernier message: 07/03/2006, 14h05
  5. Comparer le contenu de deux vecteurs
    Par misou83 dans le forum Collection et Stream
    Réponses: 11
    Dernier message: 20/07/2005, 17h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo