Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1351 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Liste déroulante

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Liste déroulante

n°1662247
fourniey
Rendre au prochain
Posté le 22-12-2007 à 02:14:33  profilanswer
 

Bonjour,
 
Mes deux listes déroulantes n'affichent pas le choix de l'usager. Pour l'affichage, tout est ok!
 
 
Aussi, comment puis-je mettre à jour la 2e liste selon le choix de la première liste ?
 
Merci!
 

Code :
  1. <?php
  2. $an = $_POST['an'];
  3. $liste = $_POST['liste'];
  4. ?>
  5.   <div class="conteneur">
  6.     <div class="header"><p class="top"><a href="http://www.ats3r.org"><img src="site/images/accueil.gif" border="0" alt="ATS"> </img></a></p>
  7.     </div>
  8.       <div class="framebloc">
  9.    <?php
  10.         echo '<FORM action="ca2.php" METHOD="POST">';
  11.         echo '<table align="center" border=3">';
  12.         echo '<tr>';
  13.    echo '<th>Liste disponible</th>';
  14.    echo '<th>Année</th>';
  15.    echo '<th>Action</th>';
  16.    echo '</tr>';
  17.    require("config.inc.php" );
  18.    $r_liste = "SELECT code,description FROM TB_statut where web_site='O' order by description";
  19.         $d_liste = mysql_query($r_liste);
  20.         echo '<tr>';
  21.    echo '<td valign="center">';
  22.         echo '<select name="liste">';
  23.         while($ch_liste=mysql_fetch_array($d_liste)) {
  24.           echo '<option value="'.$ch_liste["code"].'" '.selected.'>'.$ch_liste["description"].'</option>\n';
  25.       }
  26.         echo '</select>';
  27.         echo '</td>';
  28.    $r_an = "SELECT distinct an FROM ATS_statut where type='$liste' order by an desc";
  29.    $d_an = mysql_query($r_an);
  30.    echo '<td valign="center">';
  31.    echo '<select name="an">';
  32.    while($ch_an=mysql_fetch_array($d_an)) {
  33.           echo '<option value="'.$ch_an["an"].'" '.selected.'>'.$ch_an["an"].'</option>\n';
  34.       }
  35.    echo '</select>';
  36.    echo '</td>';
  37.    echo '<td valign="center">';
  38.    echo '<INPUT TYPE="submit" VALUE="Visualiser">';
  39.    echo '</FORM>';
  40.    echo '</td>';
  41.    echo '</tr>';

mood
Publicité
Posté le 22-12-2007 à 02:14:33  profilanswer
 

n°1662250
leflos5
On est ou on est pas :)
Posté le 22-12-2007 à 02:58:33  profilanswer
 

Je t'ai pas déjà dit de séparer ton html du php :??: La c'est ilisible pour moi à cette heure, j'ai même pas envie de chercher non plus de quoi tu parles exactement.
 
Et les echo à chaque ligne, cf 1re remarque.
 
Pour faire bouger les listes en fonction du choix d'une autre, faut soit recharger la page (valider le formulaire sur onChange par exemple) soit utiliser de l'ajax (enfin du JS asynchrone) :)

n°1662254
fourniey
Rendre au prochain
Posté le 22-12-2007 à 03:14:20  profilanswer
 

J'essaie de suivre, toi tu me dis de séparer html et ici même, on m'a déjà dit de tout mettre en php avec des echo.

n°1662256
leflos5
On est ou on est pas :)
Posté le 22-12-2007 à 03:20:13  profilanswer
 

Faut pas tomber dans l'excès d'ouvrir et fermer des balises php partout non plus c'est pas mieux.
 
Au moins tout le html qui est avant et après sort le parce que j'imagine qu'il y a autre chose genre entête et pied de page :) Et après fais tout en un coup fais pas 5 lignes de echo, fait en un seul ;)
 
Je pense personnellement qu'il est plus intéressant d'utiliser une variable que tu remplies au fur et à mesure et que tu balances à la fin. Ou au moins d'activer le tampon de sortie pour pas balancer du code foireux si y'a une erreur en cours de traitement ;)

n°1662257
leflos5
On est ou on est pas :)
Posté le 22-12-2007 à 03:22:43  profilanswer
 

SI t'as 3 lignes de html pour tout le reste de php fais tout en php.
Si c'est l'inverse fait le en html et ouvre tes balises quand il faut même si ça doit être à 3 endroits.
 
Tout est question d'équilibre et de lisibilité. En l'occurence c'est illisible ton truc et pas que pour la manière de gérer la sortie :whistle:

n°1662258
fourniey
Rendre au prochain
Posté le 22-12-2007 à 03:28:56  profilanswer
 

Est-ce que je suis dans la bonne voie ?
 

Code :
  1. <?php
  2. $an = $_POST['an'];
  3. $liste = $_POST['liste'];
  4. ?>
  5.   <div class="conteneur">
  6.     <div class="header"><p class="top"><a href="http://www.ats3r.org"><img src="site/images/accueil.gif" border="0" alt="ATS"> </img></a></p>
  7.     </div>
  8.       <div class="framebloc">
  9.         <FORM action="ca2.php" METHOD="POST">
  10.         <table align="center" border=3">
  11.         <tr>
  12.    <th>Liste disponible</th>
  13.    <th>Année</th>
  14.    <th>Action</th>
  15.    </tr>
  16.    <?php
  17.    require("config.inc.php" );
  18.    $r_liste = "SELECT code,description FROM TB_statut where web_site='O' order by description";
  19.         $d_liste = mysql_query($r_liste);
  20.         echo '<tr>';
  21.    echo '<td valign="center">';
  22.         echo '<select name="liste">';
  23.         while($ch_liste=mysql_fetch_array($d_liste)) {
  24.           echo '<option value="'.$ch_liste["code"].'" '.selected.'>'.$ch_liste["description"].'</option>\n';
  25.       }
  26.         echo '</select>';
  27.         echo '</td>';
  28. echo $liste;
  29.    if(isset($_POST['an'])) {
  30.     $r_an = "SELECT distinct an FROM ATS_statut where type='$liste' order by an desc";
  31.    }
  32.    else  {
  33.     $r_an = "SELECT distinct an FROM ATS_statut where type='CA' order by an desc";
  34.    }
  35.    $d_an = mysql_query($r_an);
  36.    echo '<td valign="center">';
  37.    echo '<select name="an">';
  38.    while($ch_an=mysql_fetch_array($d_an)) {
  39.           echo '<option value="'.$ch_an["an"].'" '.selected.'>'.$ch_an["an"].'</option>\n';
  40.       }
  41.    ?>
  42.    </select>
  43.    </td>
  44.    <td valign="center">
  45.    <INPUT TYPE="submit" VALUE="Visualiser">
  46.    </FORM>
  47.    </td>
  48.    </tr>


Message édité par fourniey le 22-12-2007 à 03:29:41
n°1662261
leflos5
On est ou on est pas :)
Posté le 22-12-2007 à 03:50:17  profilanswer
 

Ton premier passage php pourquoi ne pas l'inclure plus bas là où ça commence vraiment :??:
 
Ensuite, un echo pour plusieurs lignes c'est possible

Code :
  1. echo "c'est le début,
  2. blabla
  3. blabla
  4. c'est la fin."


Dans la continuité, la gestion des retours (\n) ne marchera que dans des guillemets doubles, en quillemets simple il devrait te l'afficher
Passe tout ton code html en minuscule dans un soucis d'homogénéité et de logique.
 
Sans repartir dans un débat long et inutile à chaque fois, pourquoi utiliser des " où le contenu sera évalué alors que y'a pas de contenu à évaluer et où ' irait tout aussi bien :??: (je parle du php, laisse les " pour le html)
 
Indente correctement ton code html ça facilite énormément la lecture ;)

n°1662915
kobhaltisa​pwner
Kick-ou-lol ? .
Posté le 25-12-2007 à 17:12:13  profilanswer
 

var_dump($d_an);  ?


---------------
www.kobhqlt.no-ip.fr
n°1662926
fourniey
Rendre au prochain
Posté le 25-12-2007 à 18:29:49  profilanswer
 

Je suis entrain de regarder pour utiliser ajax.

n°1663003
leflos5
On est ou on est pas :)
Posté le 26-12-2007 à 09:47:03  profilanswer
 

Ca va t'obliger d'autant plus à bien séparer la présentation du code métier ;)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Liste déroulante

 

Sujets relatifs
[VBA] Ajout automatique d'une ligne dans une liste déroulanteliste déroulante sur une page web en html pointant vers des fichiers p
Initalisation d'une liste déroulanteDOM et liste déroulante
Liste déroulante php/javascript et selectedmodifier le choix d'une liste déroulante
Liste déroulante avec lien vers iframe[EXCEL] Liste déroulante sur multi spreadsheets ss Excel
[Access] Valeur par défault liste déroulanteliste deroulante
Plus de sujets relatifs à : Liste déroulante


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR