Probleme liste deroulante et recup des donne selectionné

angelz Messages postés 67 Date d'inscription jeudi 22 septembre 2005 Statut Membre Dernière intervention 11 avril 2013 - 5 févr. 2007 à 11:00
angelz Messages postés 67 Date d'inscription jeudi 22 septembre 2005 Statut Membre Dernière intervention 11 avril 2013 - 8 févr. 2007 à 11:24
bonjour;
 j'ai essaye de faire une page ou on pourrait encoder des client ainsi que les prestation effectuer ...
bon en gros ca tourne .
j'ai fait un liste deroulante qui va rechercher les client deja inscrit dans une table, jusque la tout va bien.
mais apres j'aimerai recupere tout les element (nom prenon, adresse....) grace au choix de la liste et les inscrite ds les element text a cote de la liste .

qlq precision,
ce code va servir a faire sortir un feuille de prestation suivant les infos recupere ds la db.
on a une boucle qui genere une nouvelle ligne pour chaque entree dans une base qui sert a sortir une fiche de prestation par intervention.

ensuite on a une ligne qui set a encoder une nouvelle entre ds la table precedement cité.

jusque la tout marché bien mais je veux un peu plus automatiser les chose

j'ai cree un page pour encoder les client et leur info dans une table liste_client

et c'est la que ca merde lol

je voudrais que dans la ligne qui sert a encoder les prestation par client on puisse choisir le nom du client et que tout ses information (prenom adrese...)se mette automatiquement ds la suite de la ligne pour que l on ai plus qu 'a encoder les prestations et puis cliquer sur ajouter pour mettre la nouvelle entre dans la table prestation...

voila j'espere que vous pourrez m'aider

voici le code de la page :

<li><palign="center"><H2align="center"class="Style2"><u>Ajouter une intervention</u>
</li><li></H2>
</li><li><formid="form1"name="form1"method="post"action="client.php">
</li><li>
</li><li>  <divalign="center">
</li><li>  <tablewidth="258%"height="33"border="1">
</li><li>    <tr>
</li><li>      <tdwidth="5%">
</li><li>                 <?php
</li><li>
</li><li>                     // Affiche les resultat d'un requete dans une liste déroulante                    // C'EST ICI QUE JE BLOQUE !!!!!!!!!!!!

</li><li>                     echo "<select>";
</li><li>
</li><li>$connection=mysql_pconnect("localhost","root","") or die('erreur');
</li><li>$db = mysql_select_db("aid", $connection) or die ("erreur");
</li><li>
</li><li>$requete=mysql_query("SELECT * FROM client_liste");
</li><li>$nombrelignes = mysql_numrows($requete);
</li><li>for ($i=0;$i<$nombrelignes;$i++)
</li><li>{
</li><li>$nom = mysql_result($requete,$i,"nom");
</li><li>                     echo "<option value=$nom> $nom </option>";
</li><li>                     }
</li><li>
</li><li>                     echo '</select>';
</li><li>                     ?>  
</li><li></td>
</li><li>        <tdwidth="5%">
</li><li><label>
</li><li>          <inputtype="text"name="prenom"/>
</li><li>        </label>
</li><li></td>
</li><li>        <tdwidth="5%"><label>
</li><li>          <inputtype="text"name="adresse"/>
</li><li>        </label></td>
</li><li>        <tdwidth="5%"><label>
</li><li>          <inputtype="text"name="cp"/>
</li><li>        </label></td>
</li><li>        <tdwidth="5%"><label>
</li><li>          <inputtype="text"name="ville"/>
</li><li>        </label></td>
</li><li>        <tdwidth="5%"><label>
</li><li>          <inputtype="text"name="email"/>
</li><li>        </label></td>
</li><li>        <tdwidth="5%"><label>
</li><li>          <inputtype="text"name="tel"/>
</li><li>        </label></td>
</li><li>        <tdwidth="5%"><label>
</li><li>          <inputname="tva"type="text"/>
</li><li>        </label></td>
</li><li>        <tdwidth="5%"><label>
</li><li>          <inputtype="text"name="intervention"/>
</li><li>        </label></td>
</li><li>        <tdwidth="5%"><label>
</li><li>          <textareaname="panne"></textarea>
</li><li>        </label></td>
</li><li>    <tdwidth="5%"><label>
</li><li>      <textareaname="materiel"></textarea>
</li><li>        </label></td>
</li><li>        <tdwidth="5%"><label>
</li><li>          <inputtype="text"name="tothtva"/>
</li><li>        </label></td>
</li><li>        <tdwidth="5%"><label>
</li><li>          <inputtype="text"name="tottva"/>
</li><li>        </label></td>
</li><li>        <tdwidth="5%"><label>
</li><li>          <inputtype="text"name="payer"/>
</li><li>        </label></td>
</li><li>        <tdwidth="5%"><label>
</li><li>          <inputtype="text"name="apayer"/>
</li><li>        </label></td>
</li><li>        <tdwidth="5%"><label>
</li><li>          <inputtype="text"name="com"/>
</li><li>        </label></td>
</li><li>        <tdwidth="5%"><label>
</li><li>          <inputtype="text"name="bebr"/>
</li><li>        </label></td>
</li><li>        <tdwidth="5%"><label>
</li><li>          <inputtype="text"name="depaneur"/>
</li><li>        </label></td>
</li><li>        <tdwidth="5%"><label>
</li><li>          <inputtype="text"name="afacturer"/>
</li><li>        </label></td>
</li><li>    <tdwidth="5%"><label>
</li><li>      <inputname="date"type="text"value="2007-01-25"/>
</li><li>        </label></td>
</li><li>      </tr>
</li><li>  </table>
</li><li>  <inputtype="submit"value="Ajouter"/>
</li><li>  <inputname="submit"type="reset"value="Effacer"/>
</li><li>  </div>
</li><li></form>
</li>Voila l'espere que quelqu un pourra m'aider
merci bcp

 

10 réponses

angelz Messages postés 67 Date d'inscription jeudi 22 septembre 2005 Statut Membre Dernière intervention 11 avril 2013
5 févr. 2007 à 21:01
personne c'estm'aider?
0
angelz Messages postés 67 Date d'inscription jeudi 22 septembre 2005 Statut Membre Dernière intervention 11 avril 2013
5 févr. 2007 à 21:01
personne ne sais m'aider pardon pour l'ortho suis nul lol
0
angelz Messages postés 67 Date d'inscription jeudi 22 septembre 2005 Statut Membre Dernière intervention 11 avril 2013
6 févr. 2007 à 09:30
allo s'il vous plait une petit aide serait super sympa
0
angelz Messages postés 67 Date d'inscription jeudi 22 septembre 2005 Statut Membre Dernière intervention 11 avril 2013
7 févr. 2007 à 09:33
euh personne a la solution ou personne veut m'aidder?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
lesdis Messages postés 403 Date d'inscription mercredi 19 avril 2006 Statut Membre Dernière intervention 7 août 2020
7 févr. 2007 à 09:55
Bonjour,

Je ne comprend pas trop ce que tu veux faire.
Tu veux seulement afficher les informations d'un client lorsque tu choisis son nom? Sans recharger la page?
Ou seulement executer une requete SQL et afficher le resultat dans une liste déroulante?

En tout cas, sache qu'il faut toujours mettre un espace entre le nom d'une balise HTML et ses attributs :

<inputtype="submit"value="Ajouter"/>

doit s'écrire :

<input type="submit"value="Ajouter"/>

Sinon je pense que tu va avoir des surprises à l'affichage suivant les navigateurs
0
angelz Messages postés 67 Date d'inscription jeudi 22 septembre 2005 Statut Membre Dernière intervention 11 avril 2013
7 févr. 2007 à 10:00
ah cool une reponse :)

bon je reexplique
1. une liste deroulante va chercher ds une table la liste des noms( et si possibli prenom aussi) des clients que l on affiche donc dans la liste deroulante.
2. une fois le nom(et prenom si possible) selectionner dans la liste que le reste de ses information (au client) s'affiche a cote de la liste deroulante dans des input text.
voila merci deja pour TA reponse :)
0
lesdis Messages postés 403 Date d'inscription mercredi 19 avril 2006 Statut Membre Dernière intervention 7 août 2020
7 févr. 2007 à 10:31
Alors, pour ton petit 1, il suffit juste de récupérer les bonnes colonnes de ta table.
La fonction mysql_result ne récupère qu'un seul champ or ici tu voudrais en avoir 2, voici ce que je te propose en remplacement de ce que tu as déjà :

<li>$requete=mysql_query("SELECT nom,prenom FROM client_liste");
</li><li>while (list($nom,$prenom) = mysql_fetch_row($requete))
</li><li>{</li><li>    echo "<option value=$nom> $nom . $prenom</option>";
</li><li> }
</li>

En suposant que les champs voulut s'appelle bien nom et prenom dans ta table.

Maintenant, pour le petit 2, je ne connait que 2 solutions :
- Soit tu précharges toutes les données de tous les clients que tu garde dans des input cachés ou dans un array en javascript, ce qui risque d'énormément ralentir le chargement de ta page si tu as beaucoup de lignes dans ta table.
- Sinon, il existe l' XMLHTTPRequest qui est une méthode en javascript permettant de faire des appels au serveur même lorsque la page a déjà été chargée (et donc la possibilité de refaire un appel à la base de données).
Si tu choisis cette solution, je laisse avec le tutoriel que je t'ai mis en lien et avec tous les posts déjà présent à ce sujet sur la partie javascript de code-source
- Ou bien, si quelqu'un d'autre a une solution a te proposer.

Bonne prog
0
angelz Messages postés 67 Date d'inscription jeudi 22 septembre 2005 Statut Membre Dernière intervention 11 avril 2013
7 févr. 2007 à 23:54
merci pour ta reponse :)
j'ai modifier mon code qui donne ceci maintenant :

<?php  // Liste deroulante qui va rechercher le nom et le prenom des clients dans la table client_list


      // Affiche les resultat d'un requete dans une liste déroulante 
      echo "<select>";


      $connection=mysql_pconnect("zonemembres.sql.jexiste.fr","zonemembres","gisesiu") or die('erreur');
      $db = mysql_select_db("zonemembres", $connection) or die ("erreur");


      $requete=mysql_query("SELECT nom, prenom FROM client_liste");
      $nombrelignes = mysql_numrows($requete);
      while (list($nom,$prenom) = mysql_fetch_row($requete))


      {
      echo "<option value=$nom> $nom $prenom</option>";
      } 
 
      echo '</select>'; 
?>  

et ca marche :) merci j'ai le nom et le prenom qui s'affiche dans ma liste.

1. Mais je me demande sir au lieu de mettre

<? $requete=mysql_query("SELECT nom, prenom FROM client_liste"); ?>

je met <? $requete=mysql_query("SELECT nom, prenom, adresse, cp, ville, email, tel, fax, gsm FROM client_liste"); ?>

je ne pourrait pas reprentre les variable $adresse, $cp, ... pour les envoier via GET lors du onchange="cettepage.php" ?
mais je ne sais comment faire pour que ma page se recharge lors d'un choix de la liste?
 
2. comment mettre dans la liste un choix par defaut style "choisir" au premier chargement de la page

sinon vais aller faire un tour sur tes lien pour voir

encore merci :)
et si tu a des idée pour mes 2 souci n'hesite pas
0
angelz Messages postés 67 Date d'inscription jeudi 22 septembre 2005 Statut Membre Dernière intervention 11 avril 2013
8 févr. 2007 à 03:34
resalut a tous,
j'ai remanier un pe mon code enfin a ma facon lol ca doit pas etre tres joli mais ca marche presque.
c a d que qd je selectionne une entree dans ma liste la page se recharge bien les information s affiche bien mais seulement la premiere entrée
donc quelque soit le choixdans la liste j'ai toujours les info de la premiere entrée de ma table je bloque encore grrr

voici le code
 
<?php
 if (isset($_POST['id4'])) // Si les variables existent
 {
      if ($_POST['id4'] != NULL) // Si on a quelque chose &agrave; enregistrer
      {
     $id4=$_POST['id4'];
  $requete=mysql_query("SELECT * FROM client_liste WHERE id=$id4");
  $donnee = mysql_fetch_array($requete);
  $nom4 = $donnee['nom'];
  $prenom4 = $donnee['prenom'];
  $adresse4 = $donnee['adresse'];
  $cp4 =  $donnee['cp'];
  $ville4 =  $donnee['ville'];
  $tel4 =  $donnee['tel'];
  $email4 =  $donnee['email'];
  $fax4 =  $donnee['fax'];
  $gsm4 =  $donnee['gsm'];
      
   ?>
   <tr> 
        <td width="5%">"/></td>
  
        <td width="5%"><label>"/></td>
       
  <td width="5%"><label>"/></label></td>
    
     <td width="5%"><label>"/></label></td>
       
  <td width="5%"><label>"/></label></td>
       
  <td width="5%"><label>"/></label></td>
       
  <td width="5%"><label>"/></label></td>
       
  <td width="5%"><label>"/></label></td>
       
  <td width="5%"><label>"/></label></td>
         </tr>
  
   <?php
      }
              }
      
   else
   {
   ?>
    <tr> 
        <td width="5%"><?
           
       // Liste deroulante qui va rechercher le nom et le prenom des clients dans la table client_list
                  
   echo "<form name="selection" method="POST" action="client.php">";


   // Affiche les resultat d'un requete dans une liste déroulante
                    
   echo "<select NAME="selectionom" onchange="submit()">";
                   


   $requete=mysql_query("SELECT id, nom, prenom FROM client_liste");
   $nombrelignes = mysql_numrows($requete);
   while (list($id,$nom,$prenom) = mysql_fetch_row($requete))
                {
 
         echo "<option value=$nom> $nom $prenom</option>";
                 }
         echo '<option value="" selected>Choisir le Client ...</option>';
           echo '<option onChange="this.submit();">';
                    
     
      echo '</select>';
   
   echo '';
      
               echo "</form>";
      
      ?>
     
  </td>
    <?
  }
  ?>
 
je c c'est un peu long mais je voyais pas comment racourcir :)
merci de votre aide j'y suis presque grace a vous
0
angelz Messages postés 67 Date d'inscription jeudi 22 septembre 2005 Statut Membre Dernière intervention 11 avril 2013
8 févr. 2007 à 11:24
bon j'ai essayer avec la methode get mais la ... ca passe pas mais je prefererer en get car g deja bcp de post sur ma page

<?php
if (isset($_GET['id4'])) // Si les variables existent
 {
      if ($_GET['id4'] != NULL) // Si on a quelque chose &agrave; enregistrer
      {
     $id4=$_GET['id4'];
  $requete=mysql_query("SELECT * FROM client_liste WHERE id=$id4");
  $donnee = mysql_fetch_array($requete);
  $nom4 = $donnee['nom'];
  $prenom4 = $donnee['prenom'];
  $adresse4 = $donnee['adresse'];
  $cp4 =  $donnee['cp'];
  $ville4 =  $donnee['ville'];
  $tel4 =  $donnee['tel'];
  $email4 =  $donnee['email'];
  $fax4 =  $donnee['fax'];
  $gsm4 =  $donnee['gsm'];
      
   ?>
   <tr> 
        <td width="5%">"/></td>
  
        <td width="5%"><label>"/></td>
       
  <td width="5%"><label>"/></label></td>
    
     <td width="5%"><label>"/></label></td>
       
  <td width="5%"><label>"/></label></td>
       
  <td width="5%"><label>"/></label></td>
       
  <td width="5%"><label>"/></label></td>
       
  <td width="5%"><label>"/></label></td>
       
  <td width="5%"><label>"/></label></td>
         </tr>
  
   <?php
      }
              }
      
   else
   {
   ?>
    <tr> 
        <td width="5%"><?php4
           
    // Liste deroulante qui va rechercher le nom et le prenom des clients dans la table client_list
                  
   echo "<form name="selection" method="GET" action="client.php?id4=$id">";


   // Affiche les resultat d'un requete dans une liste déroulante
                    
   echo "<select NAME="selectionom" onchange="submit()">";
                   


   $requete=mysql_query("SELECT id, nom, prenom FROM client_liste");
   $nombrelignes = mysql_numrows($requete);
   while (list($id,$nom,$prenom) = mysql_fetch_row($requete))
           


       {
             
   
              echo "<option value=$nom> $nom $prenom</option>";
                 }
         echo '<option value="" selected>Choisir le Client ...</option>';
           echo '<option onChange="this.submit();">';
                    
     
      echo '</select>';
   
  
      echo "</form>";
      




      
      ?>
     
  </td>
    <?
  }
  ?>

je ne comprend pas pq je n'arrive pas a recupere la variable $id4 pour pouvoir faire un SELECT * FROM client_liste WHERE id=$id4

un petit coup de pouce svp :) je serait gentil apres :) je vous lache les basket des que ca marche :) merci bcp
0