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 :

3 listes liées avec PHP/MYSQL


Sujet :

PHP & Base de données

  1. #1
    Nouveau membre du Club
    Inscrit en
    Décembre 2007
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 57
    Points : 37
    Points
    37
    Par défaut 3 listes liées avec PHP/MYSQL
    Salut les amis,

    j'ai un problème qui me prend serieusement la tête.
    j'ai trois liste liée qui sont connecté a une base de donnée en local avec easyphp.
    Cela fonctionne très bien car les unes se remplissent en fonctions des autres.
    Mais lorsque je l'envois chez l'hebergeur ce ne marche pas seule la première liste se remplie.
    je signale que j'utilise php+ajax

    Y'a t il des actions que je doit effectuer cher mon hebergeur;

    Merci pour vos reponse

  2. #2
    Nouveau membre du Club
    Inscrit en
    Décembre 2007
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 57
    Points : 37
    Points
    37
    Par défaut
    je viens de constater que la BD en local est la version 4 et celle chez l'hebergeur est la version 5

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    495
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 495
    Points : 396
    Points
    396
    Par défaut
    est-ce que ton script ajax te renvoye des erreurs ?

  4. #4
    Nouveau membre du Club
    Inscrit en
    Décembre 2007
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 57
    Points : 37
    Points
    37
    Par défaut
    Mon script ajax ne me renvoie aucune erreur.
    j'ai aussi changé la version de php chez mon hébergeur en php4.
    Mais le problème y réside toujours.

  5. #5
    Membre expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Points : 3 972
    Points
    3 972
    Par défaut
    C'est AJAX qui n'est pas executé ou ton script php ?

    Tentes de mettre quelques alert(); dans ton code pourle déboguer, sinon executes ton script PHP en solo pour voir ce qu'il te renvoie chez ton hébergeur.

  6. #6
    Nouveau membre du Club
    Inscrit en
    Décembre 2007
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 57
    Points : 37
    Points
    37
    Par défaut
    j'essaie mais toujours aucune action chez l'hebergeur.
    je peux vous postez mon code si vous voulez.

  7. #7
    Membre expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Points : 3 972
    Points
    3 972
    Par défaut
    Bonjour,
    tu peux poster ton code si tu veux mais tu n'as pas répondu, c'est ton javascript ou ton PHP qui bogue ?

  8. #8
    Nouveau membre du Club
    Inscrit en
    Décembre 2007
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 57
    Points : 37
    Points
    37
    Par défaut
    En fait je ne sait pas trop mais je pense que c'est mon script javascript.

    Voici le code:

    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
     
           <script type="text/javascript">
        var Ld1Id='';
        var Ld2Id='';
        var id_liste='';
     
       function ValideLd2(val) {
        Ld1Id=val; //id_département
       id_liste='2';//Utilisé dans la fonction ChargeLd() pour identifier la liste déroulante
       var LD_URL = 'ValideLd2.php?Ld1='+Ld1Id;
        ObjetXHR(LD_URL)
       // Réinitialisation de Ld3 si modification de LD1 après passage en Ld2
       if (Ld2Id!='') {ValideLd3(''); }
        }
     
      function ValideLd3(val) {
       Ld2Id=val; //id_commune
      id_liste='3'; //Utilisé dans la fonction ChargeLd() pour identifier la liste déroulante
       var LD_URL = 'ValideLd3.php?Ld1='+Ld1Id+'&Ld2='+Ld2Id;
       if (Ld2Id=='') {var LD_URL = 'ValideLd3.php';}
      ObjetXHR(LD_URL)
        }
     
       function ObjetXHR(LD_URL) {
      //creation de l'objet XMLHttpRequest
       if (window.XMLHttpRequest) { // Mozilla,...
        xmlhttp=new XMLHttpRequest();
        if (xmlhttp.overrideMimeType) {
        xmlhttp.overrideMimeType('text/xml');
        }
        xmlhttp.onreadystatechange=ChargeLd;
        xmlhttp.open("GET", LD_URL, true);
         xmlhttp.send(null);
        } else if (window.ActiveXObject) { //IE
        xmlhttp=new ActiveXObject('Microsoft.XMLHTTP');
        if (xmlhttp) {
        xmlhttp.onreadystatechange=ChargeLd;
        xmlhttp.open('GET', LD_URL, false);
        xmlhttp.send();
       }
        }
       // Bouton non apparent car modification de LD1 ou Ld2
       document.getElementById('buttons').style.display='none';
      }
     
       // fonction pour manipuler l'appel asynchrone
        function ChargeLd() {
       if (xmlhttp.readyState==4) {
        if (xmlhttp.status==200) {
       //span id="niv2" ou "niv3"
        document.getElementById('niv'+id_liste).innerHTML=xmlhttp.responseText;
       if (xmlhttp.responseText.indexOf('disabled')<=0) {
        //focus sur liste déroulante 2 ou 3
        document.getElementById('Liste'+id_liste).focus();
        }
        }
       }
        }
     
        function Affiche_Btn() {
         document.getElementById('buttons').style.display='inline';
    	  }
       </script>

  9. #9
    Membre expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Points : 3 972
    Points
    3 972
    Par défaut
    Je ne vois rien de bizzare mais il faudrait peut etre le code HTML et le script PHP appelé pour qu'on puisse comprendre ton cheminement.

  10. #10
    Nouveau membre du Club
    Inscrit en
    Décembre 2007
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 57
    Points : 37
    Points
    37
    Par défaut
    oki je vous donne tout le code étape par étape:

    la page html contenant le code ajax:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" /> 
    <link rel="stylesheet" type="text/css" href="../installation/style.css" />
     
     
           <script type="text/javascript">
        var Ld1Id='';
        var Ld2Id='';
        var id_liste='';
     
       function ValideLd2(val) {
        Ld1Id=val; //id_département
       id_liste='2';//Utilisé dans la fonction ChargeLd() pour identifier la liste déroulante
       var LD_URL = 'ValideLd2.php?Ld1='+Ld1Id;
        ObjetXHR(LD_URL)
       // Réinitialisation de Ld3 si modification de LD1 après passage en Ld2
       if (Ld2Id!='') {ValideLd3(''); }
        }
     
      function ValideLd3(val) {
       Ld2Id=val; //id_commune
      id_liste='3'; //Utilisé dans la fonction ChargeLd() pour identifier la liste déroulante
       var LD_URL = 'ValideLd3.php?Ld1='+Ld1Id+'&Ld2='+Ld2Id;
       if (Ld2Id=='') {var LD_URL = 'ValideLd3.php';}
      ObjetXHR(LD_URL)
        }
     
       function ObjetXHR(LD_URL) {
      //creation de l'objet XMLHttpRequest
       if (window.XMLHttpRequest) { // Mozilla,...
        xmlhttp=new XMLHttpRequest();
        if (xmlhttp.overrideMimeType) {
        xmlhttp.overrideMimeType('text/xml');
        }
        xmlhttp.onreadystatechange=ChargeLd;
        xmlhttp.open("GET", LD_URL, true);
         xmlhttp.send(null);
        } else if (window.ActiveXObject) { //IE
        xmlhttp=new ActiveXObject('Microsoft.XMLHTTP');
        if (xmlhttp) {
        xmlhttp.onreadystatechange=ChargeLd;
        xmlhttp.open('GET', LD_URL, false);
        xmlhttp.send();
       }
        }
       // Bouton non apparent car modification de LD1 ou Ld2
       document.getElementById('buttons').style.display='none';
      }
     
       // fonction pour manipuler l'appel asynchrone
        function ChargeLd() {
       if (xmlhttp.readyState==4) {
        if (xmlhttp.status==200) {
       //span id="niv2" ou "niv3"
        document.getElementById('niv'+id_liste).innerHTML=xmlhttp.responseText;
       if (xmlhttp.responseText.indexOf('disabled')<=0) {
        //focus sur liste déroulante 2 ou 3
        document.getElementById('Liste'+id_liste).focus();
        }
        }
       }
        }
     
        function Affiche_Btn() {
         document.getElementById('buttons').style.display='inline';
    	  }
       </script>
     
      <style>
        #buttons {
        display: none;
        }
         </style>
     
    </head>
    <body>
    <div id="content" >
    <div class="main">
     
    	  <h2>&nbsp;</h2>
    <br />
          <div id="Les3LD">         
                           <form method="POST" action="traitement_ajout_rubrique.php">       
     
                            <table width="623" border="0" align="center" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF">
                              <tr>
                                <td width="755" height="10" colspan="2" bgcolor="#35917C">&nbsp;</td>
                              </tr>
     
                              <tr>
                                <td height="28" bgcolor="#FFFFFF"><div align="left"><br>
                                  <table width="653" height="23" border="0" align="center" cellpadding="0" cellspacing="0">
         <tr>
     
          <td width="75">
            <div align="left" class="texte_noir_gras">Rubriques      </div></td>
           <td width="161"><?
        include 'valideLd1.php'; ?>
     
          <!--Pour remplir la liste d&eacute;roulante 1--></td>
           <td width="112" class="texte_noir_gras"> 
             Sous Rubrique       </td>
           <td width="183"><span id="niv2">
           <? include 'valideLd2.php'; ?>
           </span> 
           <!--Pour remplir la liste d&eacute;roulante 2--> </td>
           <td width="75" class="texte_noir_gras">Zones         </td>
           <td width="47"><span id="niv3">
           <? include 'valideLd3.php'; ?>
           </span>
             <!--Pour remplir la liste d&eacute;roulante 3--></td>
         </tr>
       </table>                            </td>
                              </tr>
                              <tr>
                                <td colspan="2" bgcolor="#FFFFFF">
                                 <br>
                                     <p align="center">
                                       <textarea id="elm1" name="contenu" cols="20" rows="15" style="width: 400px"></textarea>
                                     </p>
                                </td>
                              </tr>
                              <tr>
                                <td height="9" colspan="2" bgcolor="#35917C" ><div align="center">* <span id="buttons"> *
                                <input type="submit" value="Création">
               * </span> *</div></td>
                              </tr>
                            </table>
                           </form></div>
     
     
     
      </div>
     
    <div id="copyright"></div>
     
     
    </div>
     
    </body>
    </html>

    Ensuite voici la page valideLd1

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    <?PHP
        include 'Connexionbd.php';
        $rq="Select id_rubrique,rubrique from rubrique order by rubrique;";
        $rq_pos_id=0; //position dans le SQL de la clé de la liste déroulante idem dans ValideLd2.php et ValideLd3.php
         $rq_pos_val=1; //position dans le SQL de la valeur de la liste déroulante idem dans ValideLd2.php et ValideLd3.php
     
         $result= mysql_query ($rq) or die ("Select impossible");
         $retour = '<select name="Liste1" id="Liste1" size="1" onchange="ValideLd2(this[this.selectedIndex].value);">';
        $retour .= '<option selected value="">Choisissez un rubrique...</option>';
         if (mysql_num_rows($result) != 0) {
         while ($row = mysql_fetch_row($result)) {
         $retour .= '<option value="'. $row[$rq_pos_id] .'">'. $row[$rq_pos_val] .'</option>';
         }
         $retour .= '</select>';
        } else {
         $retour = '<input id="size" type="text" size="10" value="Aucune valeur" disabled>';
         }
         mysql_free_result($result);
         mysql_close($connexion);
         echo $retour;
         ?>
    la page valideLd2 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
     <?PHP
         include 'Connexionbd.php';
        $Ld1_retour =''; //id_département clé de la liste déroulante 1
     
        if (isset($_GET['Ld1'])) {$Ld1_retour = $_GET['Ld1'];}
     
        if ($Ld1_retour!='') {
        $rq="Select id_sous_rubrique, sous_rubrique from sous_rubrique where id_rubrique=".$Ld1_retour." order by sous_rubrique;";
        $rq_pos_id=0;
        $rq_pos_val=1;
        $result= mysql_query ($rq) or die ("Select impossible");
        $retour = '<select name="Liste2" id="Liste2" size="1" onchange="ValideLd3(this[this.selectedIndex].value);">';
        $retour .= '<option selected value="">Choisissez une sous rubrique...</option>';
     
        if (mysql_num_rows($result) != 0) {
         while ($row = mysql_fetch_row($result)) {
         $retour .= '<option value="'. $row[$rq_pos_id] .'">'. $row[$rq_pos_val] .'</option>';
         }
        $retour .= '</select>';
         } else {
        $retour = '<input id="Liste2" type="text" size="10" value="Aucune valeur" disabled>';
       }
         mysql_free_result($result);
       mysql_close($connexion);
       }else{
        $retour = '<select name="Liste2" id="Liste2" size="1" disabled><option>Aucune valeur</option></select>';
         }
         echo $retour;
        ?>

    et enfin valideLd3 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
        <?PHP
         include 'Connexionbd.php';
         $Ld1_retour =''; //id_département clé de la liste déroulante 1
         $Ld2_retour =''; //id_commune clé de la liste déroulante 2
     
         if (isset($_GET['Ld1'])) {$Ld1_retour = $_GET['Ld1'];}
         if (isset($_GET['Ld2'])) {$Ld2_retour = $_GET['Ld2'];}
     
         if (($Ld1_retour!='')&&($Ld2_retour!='')) {
        $rq="Select zone from zone where id_rubrique=".$Ld1_retour." AND id_sous_rubrique=".$Ld2_retour." order by zone;";
         $rq_pos_id=0;
         $rq_pos_val=0;
         $result= mysql_query ($rq) or die ("Select impossible");
         $retour = '<select name="Liste3" id="Liste3" size="1" onchange="Affiche_Btn();">';
        $retour .= '<option selected value="">Choisissez une zone...</option>';
     
         if (mysql_num_rows($result) != 0) {
         while ($row = mysql_fetch_row($result)) {
        $retour .= '<option value="'. $row[$rq_pos_id] .'">'. $row[$rq_pos_val] .'</option>';
        }
         $retour .= '</select>';
         } else {
        $retour = '<input id="Liste3" type="text" size="10" value="Aucune valeur" disabled>';
        }
         mysql_free_result($result);
         mysql_close($connexion);
        }else{
         $retour = '<select name="Liste3" id="Liste3" size="1" disabled><option>Aucune valeur</option></select>';
        }
        echo $retour;
       ?>
    NB: je précise que se code fonctionne bien avec mon easyphp mais ne fonctionne pas chez mon hébergeur.

  11. #11
    Membre expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Points : 3 972
    Points
    3 972
    Par défaut
    En executant tes scripts PHP en solo chez ton hébergeur, obtiens tu une erreur ?

    Aussi, pourrais tu rajouter les balises [ CODE ] a ton message ci-dessus ?

  12. #12
    Nouveau membre du Club
    Inscrit en
    Décembre 2007
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 57
    Points : 37
    Points
    37
    Par défaut
    non je n'obtient aucune erreur en php, que ca soit au niveau de l'insert;update;select etc...

  13. #13
    Membre expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Points : 3 972
    Points
    3 972
    Par défaut
    Peut etre qu'en mettant les balises <?php à la place de <? ?

Discussions similaires

  1. Listes imbriquées (liées) avec PHP/MySQL/jQuery
    Par mel.cam12 dans le forum jQuery
    Réponses: 1
    Dernier message: 10/04/2014, 11h34
  2. [AJAX] 4 listes liées en PHP/MySQL/AJAX
    Par elmanu13 dans le forum AJAX
    Réponses: 6
    Dernier message: 07/09/2011, 11h04
  3. [MySQL] 2 listes déroulantes avec php et mysql
    Par SHERPAE dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 26/12/2007, 14h04
  4. multi update avec php/ mysql
    Par arnoweb dans le forum Administration
    Réponses: 1
    Dernier message: 17/11/2005, 23h10
  5. liste déroulante avec données mysql
    Par fab44 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 24/02/2005, 20h45

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