Formulaire PHP avec access.

Formulaire PHP avec access. - PHP - Programmation

Marsh Posté le 08-04-2008 à 16:41:52    

Bonjour,
 
Je vais essayer d'être le plus clair possible.
 
L'entreprise comporte plusieurs magasins situés à plusieurs endroits différents.
Malheureusement, tous ces magasins n'ont pas les même articles. :heink:  
C'est pour cela que je voudrais créer un formulaire qui me permettrai de choisir le magasin ainsi que les articles dispo dans ce magasin.
 
Le truc étant de sortir des statistiques de ces produits (mais ça on en viendra plus tard  :D )
Je voudrais aussi la possibilité d'ajouter d'autre magasins ou d'autres articles à la recherche.
 
Donc étant très amateur en Php, j'ai déjà réussi à faire cela: (bien sur ya rien qui marche.)
 

Code :
  1. <?php
  2. $odbc = odbc_connect('Annecy_central','root','') or die("Could Not Connect to ODBC Database!" );
  3. ?>
  4. <HTML>
  5. <link rel="stylesheet" media="screen" type="text/css" href="design.css" />
  6. <form method="POST" action="choix_art.php">
  7.    <fieldset>
  8.         <legend>Choix d'un article:</legend>
  9.  <form method="GET" action="">
  10.  <label for="mag">Quel magasin?</label><br />
  11.  <select name="pays" id="pays" tabindex="40">
  12.            <optgroup label="Haute-Savoie">
  13.                <option value="BIO">Le Biot</option>
  14.                <option value="DOU">Douvaine</option>
  15.                <option value="GRO">Groisy</option>
  16.                <option value="FIL">Fillinges</option>
  17.      <option value="SAL">Sales</option>
  18.            </optgroup>
  19.            <optgroup label="Savoie">
  20.                <option value="COM">La Compôte</option>
  21.            </optgroup>
  22.        </select>
  23.    <input type="submit" name="envoi" value="Télécharger" />
  24.  <br><?php switch($_GET['pays']){
  25.  case "BIO": echo "Le Biot: "; break;
  26.  case "DOU": echo "Douvaine "; break;
  27.  case "COM": echo "La Compôte "; break;
  28.  case "FIL": echo "Fillinges "; break;
  29.  case "SAL": echo "Sales "; break;
  30.  case "GRO": echo "Groisy "; break;}?>
  31.        <label for="art">Quel article?</label><br />
  32.    <?php
  33.    switch($_GET['pays']){
  34.  case "BIO":
  35.  $query = "SELECT Nom from BIO_Article;"; 
  36.  $result = odbc_do ($odbc,$query);
  37.  echo '  <select name="art" id="art">';
  38.  while ($ligne=odbc_fetch_array($result))
  39.  {
  40.  echo '<option>'.$ligne["Nom"].'</option>';
  41.  }
  42.  echo '</select>'; break;
  43.  //------------------------------------------------
  44.  case "DOU":
  45.  $query = "SELECT Nom from DOU_Article;"; 
  46.  $result = odbc_do ($odbc,$query);
  47.    echo '  <select name="art" id="art">';
  48.    while ($ligne=odbc_fetch_array($result))
  49.  {
  50.  echo '<option>'.$ligne["Nom"].'</option>';
  51.  }
  52.  echo '</select>'; break;
  53.  //------------------------------------------------
  54.  case "COM":
  55.  $query = "SELECT Nom from COM_Article;"; 
  56.  $result = odbc_do ($odbc,$query);
  57.    echo '  <select name="art" id="art">';
  58.    while ($ligne=odbc_fetch_array($result))
  59.  {
  60.  echo '<option>'.$ligne["Nom"].'</option>';
  61.  }
  62.  echo '</select>'; break;
  63.  //------------------------------------------------
  64.  case "FIL":
  65.  $query = "SELECT Nom from FIL_Article;"; 
  66.  $result = odbc_do ($odbc,$query);
  67.    echo '  <select name="art" id="art">';
  68.    while ($ligne=odbc_fetch_array($result))
  69.  {
  70.  echo '<option>'.$ligne["Nom"].'</option>';
  71.  }
  72.  echo '</select>'; break;
  73.  //------------------------------------------------
  74.  case "SAL":
  75.  $query = "SELECT Nom from SAL_Article;"; 
  76.  $result = odbc_do ($odbc,$query);
  77.    echo '  <select name="art" id="art">';
  78.    while ($ligne=odbc_fetch_array($result))
  79.  {
  80.  echo '<option>'.$ligne["Nom"].'</option>';
  81.  }
  82.  echo '</select>'; break;
  83.  //------------------------------------------------
  84.  case "GRO":
  85.  $query = "SELECT Nom from GRO_Article;"; 
  86.  $result = odbc_do ($odbc,$query);
  87.    echo '  <select name="art" id="art">';
  88.    while ($ligne=odbc_fetch_array($result))
  89.  {
  90.  echo '<option>'.$ligne["Nom"].'</option>';
  91.  }
  92.  echo '</select>'; break;
  93. }
  94. ?>
  95.  
  96.    </fieldset>
  97.    <fieldset>
  98.    <form method="post" action="">
  99.        <legend>Vous voulez:</legend>
  100.        <p>
  101.            Que voulez-vous rajouter? :<br />
  102.   <input type="radio" name="souhait" value="mag_sup" id="mag_sup" tabindex="40" /> <label for="mag_sup">Ajouter un magasin</label><br />
  103.   <input type="radio" name="souhait" value="art_sup" id="art_sup" tabindex="40" /> <label for="art_sup">Ajouter un article.</label><br />
  104.  </p>
  105.  <input type="submit" value="Ajouter"/> <input type="reset" />
  106.    </fieldset>
  107.    <p>
  108.        <input type="submit" /> <input type="reset" />
  109.    </p>
  110.  
  111. </form>
  112. </html>


 
J'explique un peu mon code, je me connecte à la base, j'affiche la première liste déroulante et une fois que j'ai choisi mon site, je clique sur "telecharger" et hop la deuxième liste qui contient les produits relatifs à ce magasins apparaissent. (pas reussi à faire ça en JS)
 
Le soucis est qu'après ben ya rien qui marche.
 
Si vous avez pris le temps de tout lire, je vous remercie.
Si vous avez une idée, elle est la bienvenue.

Reply

Marsh Posté le 08-04-2008 à 16:41:52   

Reply

Marsh Posté le 08-04-2008 à 16:54:41    

HS : A la place de tout le code ci-dessous :  

Code :
  1. <?php
  2.        switch($_GET['pays']){
  3.         case "BIO":
  4.         $query = "SELECT Nom from BIO_Article;";  
  5.         $result = odbc_do ($odbc,$query);
  6.  
  7.         echo '  <select name="art" id="art">';
  8.         while ($ligne=odbc_fetch_array($result))
  9.         {
  10.         echo '<option>'.$ligne["Nom"].'</option>';
  11.         }
  12.         echo '</select>'; break;
  13.         //------------------------------------------------
  14.         case "DOU":
  15.         $query = "SELECT Nom from DOU_Article;";  
  16.         $result = odbc_do ($odbc,$query);
  17.  
  18.        echo '  <select name="art" id="art">';
  19.        while ($ligne=odbc_fetch_array($result))
  20.         {
  21.         echo '<option>'.$ligne["Nom"].'</option>';
  22.         }
  23.         echo '</select>'; break;
  24.         
  25.         //------------------------------------------------
  26.         case "COM":
  27.         $query = "SELECT Nom from COM_Article;";  
  28.         $result = odbc_do ($odbc,$query);
  29.  
  30.        echo '  <select name="art" id="art">';
  31.        while ($ligne=odbc_fetch_array($result))
  32.         {
  33.         echo '<option>'.$ligne["Nom"].'</option>';
  34.         }
  35.         echo '</select>'; break;
  36.         
  37.         //------------------------------------------------
  38.         case "FIL":
  39.         $query = "SELECT Nom from FIL_Article;";  
  40.         $result = odbc_do ($odbc,$query);
  41.  
  42.        echo '  <select name="art" id="art">';
  43.        while ($ligne=odbc_fetch_array($result))
  44.         {
  45.         echo '<option>'.$ligne["Nom"].'</option>';
  46.         }
  47.         echo '</select>'; break;
  48.         
  49.         //------------------------------------------------
  50.         case "SAL":
  51.         $query = "SELECT Nom from SAL_Article;";  
  52.         $result = odbc_do ($odbc,$query);
  53.  
  54.        echo '  <select name="art" id="art">';
  55.        while ($ligne=odbc_fetch_array($result))
  56.         {
  57.         echo '<option>'.$ligne["Nom"].'</option>';
  58.         }
  59.         echo '</select>'; break;
  60.         
  61.         //------------------------------------------------
  62.         case "GRO":
  63.         $query = "SELECT Nom from GRO_Article;";  
  64.         $result = odbc_do ($odbc,$query);
  65.  
  66.        echo '  <select name="art" id="art">';
  67.        while ($ligne=odbc_fetch_array($result))
  68.         {
  69.         echo '<option>'.$ligne["Nom"].'</option>';
  70.         }
  71.         echo '</select>'; break;
  72. }
  73. ?>


Tu pourrais simplement mettre :

Code :
  1. $query = "SELECT Nom from ".$_GET['pays']."_Article;";  
  2.         $result = odbc_do ($odbc,$query);
  3.  
  4.         echo '  <select name="art" id="art">';
  5.         while ($ligne=odbc_fetch_array($result))
  6.         {
  7.         echo '<option>'.$ligne["Nom"].'</option>';
  8.         }
  9.         echo '</select>';



---------------
Feedback : http://forum.hardware.fr/hfr/Achat [...] 2666_1.htm
Reply

Marsh Posté le 08-04-2008 à 16:58:31    

oui désolé, mais ma demande n'étant pas très claire, je pensais qu'il était préférable de mettre tout le code de manière a ce que tout le monde comprenne.

Reply

Marsh Posté le 08-04-2008 à 17:07:04    

J'ai bisouillé qq passages pour que ca soit plus correct (cf post précédent) et j'ai corrigé une erreur de html (on ne peux pas imbriquer des form !!!)
Dis moi si c'est mieux ?

Code :
  1. <?php
  2. $odbc = odbc_connect('Annecy_central','root','') or die("Could Not Connect to ODBC Database!" );
  3. ?>
  4. <HTML>
  5. <link rel="stylesheet" media="screen" type="text/css" href="design.css" />
  6.   <fieldset>
  7.        <legend>Choix d un article:</legend>
  8. <form method="GET" action="">
  9. <label for="mag">Quel magasin?</label><br />
  10. <select name="pays" id="pays" tabindex="40">
  11.           <optgroup label="Haute-Savoie">
  12.               <option value="BIO">Le Biot</option>
  13.               <option value="DOU">Douvaine</option>
  14.               <option value="GRO">Groisy</option>
  15.               <option value="FIL">Fillinges</option>
  16.     <option value="SAL">Sales</option>
  17.           </optgroup>
  18.           <optgroup label="Savoie">
  19.               <option value="COM">La Compôte</option>
  20.           </optgroup>
  21.       </select>
  22.   <input type="submit" name="envoi" value="Télécharger" />
  23. </form>
  24. <br>
  25. <form method="POST" action="choix_art.php">
  26. <?php
  27. if (isset($_GET['pays'])
  28. {
  29.  switch($_GET['pays'])
  30.  {
  31.   case "BIO": echo "Le Biot: "; break;
  32.   case "DOU": echo "Douvaine "; break;
  33.   case "COM": echo "La Compôte "; break;
  34.   case "FIL": echo "Fillinges "; break;
  35.   case "SAL": echo "Sales "; break;
  36.   case "GRO": echo "Groisy "; break;
  37.  }
  38.  echo '<label for="art">Quel article?</label><br />';
  39.  
  40.  $query = "SELECT Nom from ".$_GET['pays']."_Article;";
  41.  $result = odbc_do ($odbc,$query);
  42.  echo '  <select name="art" id="art">';
  43.  while ($ligne=odbc_fetch_array($result))
  44.  {
  45.  echo '<option>'.$ligne["Nom"].'</option>';
  46.  }
  47.  echo '</select>';
  48. }
  49. ?>
  50. </form>
  51.   </fieldset>
  52.   <fieldset>
  53.   <form method="post" action="">
  54.       <legend>Vous voulez:</legend>
  55.       <p>
  56.           Que voulez-vous rajouter? :<br />
  57.  <input type="radio" name="souhait" value="mag_sup" id="mag_sup" tabindex="40" /> <label for="mag_sup">Ajouter un magasin</label><br />
  58.  <input type="radio" name="souhait" value="art_sup" id="art_sup" tabindex="40" /> <label for="art_sup">Ajouter un article.</label><br />
  59. </p>
  60. <input type="submit" value="Ajouter"/> <input type="reset" />
  61.   </fieldset>
  62.   <p>
  63.       <input type="submit" /> <input type="reset" />
  64.   </p>
  65. </form>
  66. </html>


Message édité par babasss le 08-04-2008 à 17:24:13

---------------
Feedback : http://forum.hardware.fr/hfr/Achat [...] 2666_1.htm
Reply

Marsh Posté le 08-04-2008 à 17:19:35    

La base de données étant à l'entreprise, je peux pas tester immédiatement.
Je te redis demain
 
Mais si tu vois d'autre erreurs n'hésite pas ;).
 
merci beaucoup

Reply

Marsh Posté le 08-04-2008 à 17:23:23    

A prioiri non, ce que je te conseille c'est de procéder par étapes :

  • Faire que le premier formulaire marche => renvoi d'une url mapage.php?pays=mavaleurselectionne
  • Affichage de la deuxième partie pour le bon pays
  • ...


---------------
Feedback : http://forum.hardware.fr/hfr/Achat [...] 2666_1.htm
Reply

Marsh Posté le 09-04-2008 à 08:07:06    

Tout marche très bien à part le if (isset($_GET['pays']) qui me renvoie un unexpected {
 
si j'enlève ce if (isset($_GET['pays']) ca marche très bien.
 
Pour ce qui est du choix du magasin, c'est très bien, le problème est que quand je clique télécharger, il me trouve bien la liste d'article qui va avec, mais la première liste déroulante retourne sur sa premirèe valeur.

Reply

Marsh Posté le 09-04-2008 à 09:28:37    

POur sélectionner automatiquement dans une liste déroulante il faut avoir le code suivant : <option value="XXX" selected="selected">XXX</option>
Donc, il faut que tu rajoutes sur chaque option un code du style  
<option value="XXX" <php if($_GET['pays'] == 'XXX') { echo 'selected="selected"'; } ?> >Le Biot</option>


---------------
Feedback : http://forum.hardware.fr/hfr/Achat [...] 2666_1.htm
Reply

Marsh Posté le 09-04-2008 à 09:48:51    

Merci babass.
 
Par contre, j'ai cette erreur au niveau du if (isset($_GET['pays']):
 
Parse error: syntax error, unexpected '{' in formulaire2.php on line 54.

Reply

Marsh Posté le 09-04-2008 à 09:57:19    

C'est parce que j'ai fait une faute, il manque une parenthèse pour fermer le if:
=> if (isset($_GET['pays']))


---------------
Feedback : http://forum.hardware.fr/hfr/Achat [...] 2666_1.htm
Reply

Marsh Posté le 09-04-2008 à 09:57:19   

Reply

Marsh Posté le 09-04-2008 à 10:02:40    

je l'avais vu et j'étais en train de poster quand tu as répondu ;)

Reply

Marsh Posté le 09-04-2008 à 14:05:03    

Je te remercie Babasss, je vais essayer de continuer un peu tout seul et éviter de te déranger plus, mais si j'ai un problème, je revient t'embetter!
 
@+

Reply

Sujets relatifs:

Leave a Replay

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