help php liste déroulante via mysql

help php liste déroulante via mysql - PHP - Programmation

Marsh Posté le 08-02-2005 à 09:09:16    

Bonjour, j'aurais souhaité faier 2 listes déroulantes sur une même page mais l'une dépendant de l'autre, je m'explique:
Quand l'utilisateur aura sélectionné un élément dans la première liste, la deuxième apparaîtera avec différentes info concernant la première selection.
Une fois cette deuxième sélection faite, un résultat est obtenu.
Je ne sais si je dois utiliser du php ou du javascript, mais dans les deux cas, je suis novice...
  Merci d'avance pour vos aides...

Reply

Marsh Posté le 08-02-2005 à 09:09:16   

Reply

Marsh Posté le 08-02-2005 à 09:11:21    

Le mieux est d'utiliser du php, sinon ceux qu'ont pas javascript seront baisés.
 
Donc tu met ta première liste, dans un formulaire, avec un bouton ok. Lors de l'envoi, ton script php récupère la deuxième liste, et réaffiche la page avec :)

Reply

Marsh Posté le 08-02-2005 à 09:13:12    

bof la majorité des navigateurs interpètent le javascript :/
moi je dirais qu'il faut utiliser php pour générer du javascript :D c'est plus fun

Reply

Marsh Posté le 08-02-2005 à 09:13:24    

le sujet a déjà été moulte fois abordé, fait une tite recherche et tu trouvera des exemples dans les réponses déjà apportées ;)


---------------
- Xav - ...There are no crimes when there are no laws... -- Xav's World
Reply

Marsh Posté le 08-02-2005 à 09:15:02    

couak a écrit :

bof la majorité des navigateurs interpètent le javascript :/
moi je dirais qu'il faut utiliser php pour générer du javascript :D c'est plus fun


9% n'ont pas javascript :o
 
Et l'accessibilité, bourdel /FOU/

Reply

Marsh Posté le 08-02-2005 à 09:18:22    

donc javascript ou php, et je n'ai trouvé aucun script sur lequel la deuxième liste apparait lors de la selection à la première, et je rapel que je suis novice... si vous avez des scripts a me proposer, je suis preneur... Merci.

Reply

Marsh Posté le 08-02-2005 à 09:20:43    

Nope, on ne peut que t'aider si tu bosses par toi-mêmes :D (lis la charte ;) )
 
Faut faire ça en php, c'est tout simple.

Reply

Marsh Posté le 08-02-2005 à 09:24:04    

je veux bien bosser, c juste que je voudrais un coup de mains. Je suis queqlu'un de très motivé, mais donner moi juste une ou deux piste dans ce cas, php VS javascript ...?
apparition sur selection: 0 réponse google... Yeah!... Merci...

Reply

Marsh Posté le 08-02-2005 à 09:33:14    

FlorentG a écrit :

9% n'ont pas javascript :o
 
Et l'accessibilité, bourdel /FOU/


bah spa de ma faute si 9% des gens qui surfent sur le web sont soit des extrémistes religieux qui utilisent un navigateur des années 1600, soit des parano qui ont peur du javascript

Reply

Marsh Posté le 08-02-2005 à 09:34:18    

geor a écrit :

je veux bien bosser, c juste que je voudrais un coup de mains. Je suis queqlu'un de très motivé, mais donner moi juste une ou deux piste dans ce cas, php VS javascript ...?
apparition sur selection: 0 réponse google... Yeah!... Merci...


il faut commencer les choses dans l'ordre : comprendre ce qu'est PHP, comprendre ce qu'est Javascript
 
les jeunes d'aujourd'hui n'ont jamais connu les bibliothèques où on cherchait manuellement dans les index :/ aujourd'hui ils font tout avec google

Reply

Marsh Posté le 08-02-2005 à 09:34:18   

Reply

Marsh Posté le 08-02-2005 à 09:34:29    

Comme dit :
T'affiche sur ta page un formulaire (<form> ), avec dedans ta liste (<select> et liste d'<option> dedans), et un bouton ok(<input> ). Une fois le formulaire envoyé, tu récupère la valeur du <select>, tu cherches les valeurs qui vont bien, et tu affiches la deuxième <select>.

Reply

Marsh Posté le 08-02-2005 à 09:36:40    

couak a écrit :

bah spa de ma faute si 9% des gens qui surfent sur le web sont soit des extrémistes religieux qui utilisent un navigateur des années 1600, soit des parano qui ont peur du javascript


ACCESSIBILITE /FOU/MECHANT/PAS CONTENT/
 
Directive 6 des WCAG :

Citation :

S'assurer que les pages soient visibles lorsque les scripts, les applets ou autres artefacts programmables sont désactivés ou non supportés.

Reply

Marsh Posté le 08-02-2005 à 09:36:57    

comment afficher avec retardement? (kan la première choisit, apparition de la deuxième?

Reply

Marsh Posté le 08-02-2005 à 09:38:52    

geor a écrit :

comment afficher avec retardement? (kan la première choisit, apparition de la deuxième?


Comme dit, l'internaute choisira un élément dans la liste, cliquera sur ok, et là ton script affichera la deuxième.

Reply

Marsh Posté le 08-02-2005 à 09:39:58    

et a koi sert le "on change"?

Reply

Marsh Posté le 08-02-2005 à 09:40:35    

geor a écrit :

et a koi sert le "on change"?


Quand on change la valeur du <select>

Reply

Marsh Posté le 08-02-2005 à 09:46:33    

Note qu'il ne faut absolument pas utiliser le onchange pour afficher l'autre select, comme expliqué dans ce billet sur openweb

Reply

Marsh Posté le 08-02-2005 à 11:37:34    

Comment sauvegarder la selection de la première dans une variable a utiliser dans la deuxième liste déroulante qui se trouve sur la même page.??? Merci d'avance.

Reply

Marsh Posté le 08-02-2005 à 11:53:28    

Ben quand t'envoi le formulaire, tu récupère la valeur de la select :heink:

Reply

Marsh Posté le 08-02-2005 à 12:01:25    

geor a écrit :

donc javascript ou php, et je n'ai trouvé aucun script sur lequel la deuxième liste apparait lors de la selection à la première, et je rapel que je suis novice... si vous avez des scripts a me proposer, je suis preneur... Merci.


tu trouveras pas de script traitant de cela parce que c'est juste une question de logique.

  • 1 je selectionne un élement du menu select
  • 2 ce menu envoy un parametre [...].php?selection=valeuroption
  • 3 si [selection] est détecté alors affiche le deuxième select.


il faut juste réfléchire un peut. si tu comprend le principe des parametre/variable, générer un menu select, et le sql ben tu as tous les élément pour faire ce que tu souhaite.

Reply

Marsh Posté le 08-02-2005 à 14:01:14    

et sans formulaire ni bouton ok, c possible sans javascript???

Reply

Marsh Posté le 08-02-2005 à 14:02:04    

Sans javascript, non, t'es obligé d'avoir un formulaire avec bouton.
 
D'ailleurs même avec javascript, c'est obligatoire de passer par du php derrière, donc dans tous les cas faut envoyer la valeur de ton select

Reply

Marsh Posté le 08-02-2005 à 14:03:02    

comment rafraichir sans bouton ok en php???

Reply

Marsh Posté le 08-02-2005 à 14:04:30    

geor a écrit :

comment rafraichir sans bouton ok en php???


Est-ce que tu as lu mes précédents post ? :heink:
 
TOUJOURS FOUTRE UN BOUTON OK §§§ /FOU/
 
Tous le monde n'a pas javascript, tout le monde ne choisis pas les valeurs par la souris, faut être accessible à tous. Donc tu met un bouton ok :o

Reply

Marsh Posté le 08-02-2005 à 16:30:05    

bon, sur 'conseil' de mon supérieur, j'ai utilisé javascript... :ange:  
mes liste fonctionnent parfaitement bien que j'ai eu un peu de mal...
 
Je vous en remercie tous pour vos conseils.  :jap:  :)  
 
Il ne me reste plus qu'une chose a voir, je cherche à cacher ma 2ème balise tant que un élément de la première n'a pas été selectionné.
Si quelqu'un sait faire ca, merci de me donner un ou deux petit truc...
Merci encore à tous.  :hello:  

Reply

Marsh Posté le 08-02-2005 à 16:32:01    

C'est qui ton supérieur ???  
 
Amenez-moi la pelle à clous /MECHANT/ FOU/

Reply

Marsh Posté le 08-02-2005 à 16:38:12    

c un supérieur...
 
 1ère Règle: Ton supérieur a tjr raison.
 2ème règte: kan il a tor, se référer à la règle 1
 3ème règle: Si t'es pas content, la porte reste ouverte, même en hiver...
 
 Donc, pas trop le choix...
Si quelqu'un as une réponse, concernant la liste à cacher...

Reply

Marsh Posté le 08-02-2005 à 16:40:36    

4ème règle : ton supérieur n'a jamais raison, il n'y connait jamais rien :D
 
Et voilà encore une fois, l'accessibilité ruinée :cry:

Reply

Marsh Posté le 08-02-2005 à 16:42:13    

Ben ouhai mè ca répond pas à ma question...

Reply

Marsh Posté le 08-02-2005 à 16:44:20    

En CSS, avec display: none;, puis display: inline; pour le réafficher (sachant que <select> est une balise inline par défaut)

Reply

Marsh Posté le 08-02-2005 à 16:51:24    

ouhai, mais en javascipt??? ou au pire en php???

Reply

Marsh Posté le 08-02-2005 à 16:52:05    

Ben en javascript, ça va être :

document.getElementById('id_de_ton_select').style.display = 'none';

Reply

Marsh Posté le 08-02-2005 à 16:55:13    

merci... ;)

Reply

Marsh Posté le 08-02-2005 à 17:02:41    

Bon j'ai lu vite fait le topic, voici mon avis :
 
Tu créés une première liste <select>, avec un bouton valider, ainsi qu'un eventuel script qui fasse un auto-submit lors d'un changement, comme ça tu as ce que tu voulais au départ, mais tout en contentant les personnes n'ayant pas JS :)
 
++


---------------
Gamertag: CoteBlack YeLL
Reply

Marsh Posté le 08-02-2005 à 17:03:17    

j'ai juste du mal a m'en servir... vu que j'ai mis mon javascript au début, je ne sais trop ou placer  
 
document.getElementById('id_de_ton_select').style.display = 'none';
 
et
 
document.getElementById('id_de_ton_select').style.display = 'inline';
 
.
.
.

Reply

Marsh Posté le 08-02-2005 à 17:09:24    

j'ai juste du mal a m'en servir... vu que j'ai mis mon javascript au début, je ne sais trop ou placer  
 
document.getElementById('id_de_ton_select').style.display = 'none';
 
et
 
document.getElementById('id_de_ton_select').style.display = 'inline';
 
Je vous donne mon script:
 
<?php  
  // connection à la base de donnée QuiFaitQuoi via la page de connection : connectionmysql.php
  include "connectionmysql.php";
 // Connection();
?>
 
<script language="JavaScript">
function selectTypePers(){
 var Dem =new Array();
 <?php
    global $sqlDB,$sqllink,$sqlhost,$sqllogin,$sqlpasswd;
    $sqllink = mysql_pconnect($sqlhost,$sqllogin,$sqlpasswd);
    @mysql_select_db("$sqlDB",$sqllink) or die("CONNEXION à MYSQL IMPOSSIBLE.<BR>Vérifiez les paramètres de connexion dans mysql.php" );
 $sql = "SELECT t1.NumTYPEPERS, t1.TypePers,t2.DEMANDES, t2.ORGCOMD FROM `personne` t1,`demandes` t2
   where t1.NumTYPEPERS = t2.ORGCOMD";
 $ReqLog = mysql_query($sql) or die("toto" ) ;
 //creation des listes
 while ($col = mysql_fetch_row($ReqLog)){
  echo "var colonne = new Array(\"$col[1]\",\"$col[2]\" );\n";
  echo "Dem[Dem.length]=colonne;\n";
 }
 ?>
 var i,ind,val,long;
 document.forms["frmdem"].DEMANDES.selectedIndex = 0;
 //vider la liste
   while(document.forms["frmdem"].DEMANDES.options[1])
  document.forms["frmdem"].DEMANDES.options.remove(1);
 long=1;
 //selection d'une ligne ds la liste
 ind=document.forms["frmdem"].TypePers.selectedIndex;
 val=document.forms["frmdem"].TypePers.options[ind].text;
 for(i=0;i<Dem.length;i++){
  if(Dem[i][0] == val){
   op = new Option(Dem[i][1],Dem[i][1]);
   document.forms["frmdem"].DEMANDES.options[long]=op;
   long++;
 
//   op = new Option(GGR[i][0],GGR[i][0]);
//   document.forms["form1"].choix_GGR.options[long]=op;
  }
 }
}
</script>
<html>
<head>
<title>QuiFaitQuoi???</title><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<body bgcolor="#EF7D0C">
<form action="" method="get" name="frmdem">
<div align="center" bgcolor="#FFFFFF" >  
  <table width="100%" height="107" border="0" bgcolor="#CCCCCC">
    <tr>  
      <td width="23%" rowspan="3"><img src="logo%20EGD22%2012%202004.jpg" width="178" height="80"></td>
      <td width="58%" height="54"><div align="center"><strong><u><font color="#0000CC" size="+2">Bienvenue  
          sur le site de Qui Fait Quoi. </font></u></strong></div>
        <div align="center"></div></td>
      <td width="19%" rowspan="3"><div align="right"><strong><strong><img src="../images/hommequifaituntrou.gif" width="97" height="92"></strong></strong></div></td>
    </tr>
    <tr>  
    </tr>
    <tr>  
      <td height="22"><strong>  
        <center>
          <strong><u><font color="#0000cc" size="+1">DEMANDE</font></u></strong>  
        </center>
        </strong></td>
    </tr>
  </table>
  <table width="100%" height="14" border="0" bgcolor="#FFFFCC">
    <tr>  
      <td width="103%" height="10"><center>
          <img src="../images/ligne%20de%20construction.gif" width="600" height="8"></center></td>
    </tr>
  </table>
   
     
  <table width="100%" border="0">
    <tr>  
      <td width="30%"><div align="right">&Ecirc;tes-vous:</div></td>
      <td width="70%">  
     
     <?php  
   
    echo '<select size=1 name="TypePers" OnChange="selectTypePers()">';  
    echo '<option value="-1" selected >Choisir une sélection</option>';  
   
    // Récupération des informations
    $sql = "SELECT TypePers FROM Personne";  
    $ReqLog = mysql_query($sql);
   
    while ($resultat = mysql_fetch_row($ReqLog)) {  
      echo '<option value="'.$resultat[0].'">'.$resultat[0].'</option>';  
    }  
    echo '</select>';  
  ?>
 
    </tr>
    <tr>  
      <td><div align="right">Votre demande concerne:</div></td>
      <td>
   
   <?php  
     
    echo '<select size=1 name="DEMANDES">';  
    echo '<option value="-1" selected >Choisir une sélection</option>';  
    // Récupération des informations
    $sql = "SELECT distinct DEMANDES FROM demandes";  
    $ReqLog = mysql_query($sql);
    while ($resultat = mysql_fetch_row($ReqLog)) {  
      echo '<option value="'.$resultat[0].'">'.$resultat[0].'</option>';  
    }  
   
    echo '</select>';  
 
  ?>  
   
   
   </td>
    </tr>
    <tr>  
      <td><div align="right">Votre commune est:</div></td>
      <td>
   
   <?php  
   
    echo '<select size=1 name="Commune" OnChange="selectTypePers()">';  
    echo '<option value="-1" selected >Choisir une sélection</option>';  
   
    // Récupération des informations
    $sql = "SELECT distinct commune FROM COMMUNE";  
    $ReqLog = mysql_query($sql);
   
    while ($resultat = mysql_fetch_row($ReqLog)) {  
      echo '<option value="'.$resultat[0].'">'.$resultat[0].'</option>';  
    }  
    echo '</select>';  
  ?>
   
   
   
   </td>
    </tr>
  </table>
  </form>        
</div>
</body>
</html>
 
 

Reply

Marsh Posté le 09-02-2005 à 09:29:08    

UP, quelqu'un peut m'aider???

Reply

Marsh Posté le 09-02-2005 à 09:29:49    

Faut mettre le script à la fin

Reply

Marsh Posté le 09-02-2005 à 09:42:20    

a la fin d'où? du javascript? et lequel, le none ou le inline???

Reply

Marsh Posté le 09-02-2005 à 09:43:28    

Non, tout le script juste avant le </body>

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed