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

Archive PHP

 > 

Archives

 > 

AU SECOURS !!!

 > 

listbox


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

listbox

mercredi 14 septembre 2005 à 11:05:13 | listbox

refkaben

Bonjour à tous!

J'ai un pb avec les listes box,
En fait j'ai deux listes, j'ai rempli la première(secteur) à partir d'une requete select, maintenant je veux remplir la deuxième(sous secteur) aussi à partir d'une requete select mais en fonction de la valeur selectionnée dans la première liste!
voila le code de la premiere liste

<?
    $query=mysql_query("SELECT * FROM secteur") ;
?>
<?    
    echo('<select name="secteur">');
 
echo('<option value="'.'">'.'</option>');
  while ($ligne1=mysql_fetch_array($query)){
 
echo('<option value="'.$ligne1[nom].'">'.$ligne1[nom].'</option>'); }
    echo('</select>');
  ?>
maintenant il faut récupérer la valeur selectionnée pour l'utiliser dans le test de remplissage de la deuxième.
Alors comment faire?
Au secours!

mercredi 14 septembre 2005 à 11:15:47 | Re : listbox

malalam

Administrateur CodeS-SourceS
Hello,

tu t'attaques à quelquechose de complexe, là.

Une solution consiste à passer par un intermédiaire, entre tes 1 listes : 1 bouton sublit (bref, créer 2 formulaires, 1 pour chaque liste).
L'utilisateur fait son choix dans la 1ère liste, valide.
Tu fais le traitement en fonction de ton choix et génère le 2d formulaire en fonction de ce choix (requête sql).

autre solution, js : tu mets un évènement onchange sur ta 1ère liste, qui va générer une action pour modifier les données de la 2de liste (donc, on zappe l'intermédiaire, le bouton submit). Le problème est de marier le js, et une requête sql...
Une solution relativement simple pour ça est d'utiliser les requêtes XMLHTTP :
http://www.toutjavascript.com/savoir/xmlhttprequest.php3
Cela te permettra de marier ton évènement js, et  ton traitement php/sql.

 

mercredi 14 septembre 2005 à 11:29:38 | Re : listbox

refkaben

Merci malalam!
Justement! c'est complexe surtout que je vais récupéer les deux valeurs selectionnés dans les deux listes pour les inserer dans une table de la BD!
je vais essayé de trouver une solution dans le chemin que tu m'a donné!
Merci!
mercredi 14 septembre 2005 à 13:05:16 | Re : listbox

refkaben

Bonjour!
Je suis désolée pour le fait que je répète ma question!
Mais vraiment j'ai pas trouvé une solution!
j'ai pas pu comprendre le code de toutjavascript.com!
j'ai fais une fonction en javascript qui retourne la valeur selectionnée dans la première liste(je  fais appelle à cette fonction dans onchange de la première liste), pour l'utiliser dans la requete de remplissage de la deuxieme, je suis obligée de faire location .href à la meme page mais ça me charge de nouveau lapge,et je veux pas cette solution!
comment faire?
Merci
mercredi 14 septembre 2005 à 16:10:25 | Re : listbox

Anthomicro

Salut,

tu comptes réafficher la page courante ou passer sur une autre page lorsque tu sélectionnes une valeur dans ta première listbox ?


    mercredi 14 septembre 2005 à 16:27:15 | Re : listbox

    refkaben

    Salut!
    Non je veux rester sur la meme page, et c'est un formulaire d'inscription, donc je dois récupere toute les valeurs pour les inserer à la base de données,
    J'essaie le code suivant
     <tr>
    <td>Secteur d'activité*</td>
    <td> <select name="secteur" onChange="sous();"  >
     <?
        $query=mysql_query("SELECT * FROM secteur") or die ("selection impossible") ;

     echo('<option value="'.'">'.'</option>');
      while ($ligne1=mysql_fetch_array($query)){
     
    echo('<option value="'.$ligne1[id].'">'.$ligne1[nomsec].'</option>'); }
         ?>
     
    </select>
    </tr>
    <tr>
    <td>Sous Secteur activité*</td>
    <td>
    <select name="soussecteur">
     <?  
     
     $query1=mysql_query("SELECT * FROM soussecteur where idsec = '$idsec' order by idsous ") or die ("selection impossible") ;

     $ligne2=mysql_fetch_array($query1);

    $nums=mysql_num_rows($query1);
     
     echo('<option value="'.'">'.'</option>');

     $i=0;
      while (($ligne2=mysql_fetch_array($query1))&&($i<=$nums)){
     
    echo('<option value="'.$ligne2[idsous].'">'.$ligne2[nomsous].'</option>'); }
    $i++;
         ?>
     </select>
    </td>
    </tr>
    avec la fonction en java script:

    function sous()
    {
    location.href="comptebusiness.php?idsec="+document.formul.secteur.options.value ;
     }  

    le problème c'est que dans la liste sous secteur j'ai toujours un enregistrement qui manque, et puis je perds la valeur de la première liste.
    Je suis bloquée dès le matin aidez moi SVP!

    jeudi 15 septembre 2005 à 12:25:54 | Re : listbox

    refkaben

    Bonjour!
    Alors maintenant ça fonctionne très bien, pas excellent, mais à mon niveau...!
     <td>Secteur d'activité</td>
     
     <td><select name="secteur"   onChange="sect();" >
              <? if(!$idsec){?><option value=0> secteurs </option><? } ?>
              <? $sq=mysql_query("select  * from secteur  order by nomsec asc ");
     while($res=mysql_fetch_array($sq))
      {if ($res[id]==$idsec){
      ?>
              <option value=<? echo $res["id"];?> selected ><? echo $res["nomsec"];?>
              </option>
              <? }
      if ($res[id]!=$idsec)
      {
      ?>
              <option value=<? echo $res["id"];?> ><? echo $res["nomsec"];?>
              </option>
              <? }}?>
            </select></td>
      </tr>
        <tr><td>Sous Secteur d'activité</td>
          <td><select name="soussecteur" onChange="sous();">
            <? if(!$idsous){?>  <option value=0 selected>sous secteurs</option>
              <? }
       $sq=mysql_query("select * from soussecteur where idsect='$idsec' order by nomsous asc ");
                   while($res=mysql_fetch_array($sq))
      {if ($res[idsous]==$idsous){
      ?>
              <option value=<? echo $res["idsous"];?> selected><? echo $res["nomsous"];?>
              </option>
              <?  }
        if ($res[idsous]!=$idsous)
      {
      ?>
              <option value=<? echo $res["idsous"];?> ><? echo $res["nomsous"];?>
              </option>
              <? }}?>
            </select></td></tr>

    Si quelqun a une remarque ou suggestion  ou une correction ou une question  n'hesitez pas!
    Merci
    jeudi 15 septembre 2005 à 12:51:33 | Re : listbox

    Anthomicro

    Remplace les <? par <?php ensuite l'attribut OnChange > mets le en minuscules : onchange

    selected est à remplacer par selected="selected"

    ta requête est à remplacer par SELECT idsous,nomsous FROM soussecteur WHERE ...

    $res[idsous] est à remplacer par $res[0] et $res["nomsous"] à remplacer par $res[1]

    ton mysql_fetch_array() est à remplacer par mysql_fetch_row() et n'oublie pas de rajouter mysql_close() juste après le mysql_query()

    je pense que je n'ai rien oublié.

    pour plus de propreté tu peux au lieu d'ouvrir et de fermer les balises de multiples fois (<?php et ?> ) n'en faire qu'une seule et utiliser echo


      jeudi 15 septembre 2005 à 13:22:54 | Re : listbox

      refkaben

      Merci beaucoup!
      Mais pour le select *, c'est parceque je n'ai que ces deux champs à ma base!
      Pour le minuscule je ne vois pas l'intéret, ça sera gentil de ta part de m'expliquer(si vous avez le temps)!
      Merci Antho
      jeudi 15 septembre 2005 à 14:02:15 | Re : listbox

      Anthomicro

      pour le select * c'est plus gourmand que de mettre tous les champs, même si tu sélectionnes tous les champs de ta table. Ensuite pour les minuscules c'est pour la compatibilité xhtml strict, de même que pour le selected="selected"




        Cette discussion est classée dans : listbox, select, query, echo, secteur


        Répondre à ce message

        Sujets en rapport avec ce message

        listebox [ par refkaben ] Salut!J'ai deux listes à remplir à partir de la bd. La 2eme liste(soussecteur)  sera remplie en fonction de la valeur de la 1ère(secteur).Le problème liste déroulante mois et année [ par yravas ] bonjour, j'ai réalisé deux listes déroulantes: une pour le mois et une pour l'année. L'affichage se réalise correctement mais lorsque je selectionne u bleme de logique sans doute [ par le_virus ] Salut! Je suis débutant en PHP! Ce code s'exécute mais ce qui ménerve, ya pas de bug mais ca marche pas! il n'arrive pas a récuperer la le contenu du Comparer des valeurs d'une table avec une autre table selon la ligne [ par lildan ] Bonjour tout le monde,voici le code que j'utilise pour vérifier si une valeur d'une table égale la valeur d'une autre table: $query = "SELECT * FROM v Requette SQL dans 2 tables !!Aide [ par onvi ] Bonjourj'ai un petit probléme qui au début me paraissait simple.Sur un projet que je suis amené à faire à l'université j'ai fait un site ou on peut cl Mysql, php et javascript [ par dcbastien ] J'ai mis au point un petit script mais qui ne fonctionne pas comme je le souhaiterai:[red]session_start();if(!isset($_SESSION['nom'])) {echo'Veuillez des IF dans SELECT ? [ par rocknroll2 ] Bonsoir à tousPetit problème de SELECT dans lequel je voudrais mettre des conditions... si c'est possible.J'ai 30 variables définies par des boutons r Récupérer les valeurs d'un select ??? [ par Monico9385 ] Bonjour tout le monde, alors comme dit dans le titre, j'aimerai récupérer les valeurs d'un select, je m'explique. J'ai dans une BD des champs nom, pr Affichage table [ par nagattaque ] Bonjour a tous.... Je vous explique mon problème : J'ai une table qui contient des plats. Il y a 3 types de plats : entrée, plat, dessert. Je voudrai probleme de selected dans echo... [ par rafou77 ] Bonjour,Voilà j'ai un formulaire de modification de donnés par rapport à des champs dans une table, seulement le select ne me réenvois pas la valeur e


        Nos sponsors


        Sondage...

        Comparez les prix

        CalendriCode

        Mai 2012
        LMMJVSD
         123456
        78910111213
        14151617181920
        21222324252627
        28293031   

        Consulter la suite du CalendriCode

        Photothèque

        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 : 3,011 sec (3)

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