valeur de la selection d'une liste déroulante dans une variable

valeur de la selection d'une liste déroulante dans une variable - PHP - Programmation

Marsh Posté le 06-02-2007 à 17:07:39    

Bonjour à tous,
 
j'ai créé une liste déroulante (avec des echo) dans du code php et je cherche à récupérer directement le choix de l'utilisateur dans une variable

Code :
  1. <?php
  2. echo "Select output:<br>";
  3. echo '<form method="post">
  4. <select name="output">';
  5. echo '<option value="VGA60">VGA 60Hz</option>';
  6. echo '<option value="VGA75">VGA 75Hz</option>';
  7. echo '<option value="SVGA60">SVGA 60Hz</option>';
  8. echo '<option value="SVGA75">SVGA 75Hz</option>';
  9. echo '<option value="XGA60">XGA 60Hz</option>';
  10. echo '<option value="XGA75">XGA 75Hz</option>';
  11. echo '<option value="SXGA60">SXGA 60Hz</option>';
  12. echo '<option value="SXGA75">SXGA 75Hz</option>';
  13. echo '<option value="UXGA60">UXGA 60Hz</option>';
  14. echo '<option value="720p">720p</option>';
  15. echo '<option value="1080i">1080i</option>';
  16. echo '<option value="AES">AES/EBU</option>';
  17. echo '</select>
  18. </form>';


 
comment je récupère "value" de la liste dans une variable, cette variable devant etre modifiée automatiquement en fonction du choix dans la liste (pas de refresh de la page)?
 
merci d'avance !

Reply

Marsh Posté le 06-02-2007 à 17:07:39   

Reply

Marsh Posté le 06-02-2007 à 17:21:45    

Tu fais pas.
Le php s'exécute sur le serveur, donc tu n'auras rien dans une variable php sans refresh.


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 06-02-2007 à 17:36:00    

ok alors vu que j'ai 2 listes déroulantes et 2 checkbox, comment je peux faire pour me rediriger vers une autre page php avec les 4 infos dont j'ai besoin d'un seul coup?
 

Code :
  1. <?php
  2. $homedir="C:\dossier";
  3. $dir=opendir($homedir);
  4. echo "Select file to play:<br>";
  5. echo '<form method="post">
  6. <select name="file">';
  7. while ($file = readdir($dir))
  8. {
  9.  if (($file!="." )&&($file!=".." ))
  10.  echo '<option value="$file">'.$file.'</option>';
  11. }
  12. echo '</select>';
  13. closedir($dir);
  14. echo "<br>";
  15. echo "Select output:<br>";
  16. echo '<form method="post">
  17. <select name="output">';
  18.  echo '<option value="VGA60">VGA 60Hz</option>';
  19.  echo '<option value="VGA75">VGA 75Hz</option>';
  20.  echo '<option value="SVGA60">SVGA 60Hz</option>';
  21.  echo '<option value="SVGA75">SVGA 75Hz</option>';
  22.  echo '<option value="XGA60">XGA 60Hz</option>';
  23.  echo '<option value="XGA75">XGA 75Hz</option>';
  24.  echo '<option value="SXGA60">SXGA 60Hz</option>';
  25.  echo '<option value="SXGA75">SXGA 75Hz</option>';
  26.  echo '<option value="UXGA60">UXGA 60Hz</option>';
  27.  echo '<option value="720p">720p</option>';
  28.  echo '<option value="1080i">1080i</option>';
  29.  echo '<option value="AES">AES/EBU</option>';
  30. echo '</select>';
  31. echo "<br>";
  32. echo "Loop option: ";
  33. echo '<input type="checkbox" name="loop" value="loop">';
  34. echo "<br>";
  35. echo "Play: ";
  36. echo '<input type="checkbox" name="play" value="play">';
  37. echo "<br>";
  38. echo '<input type="submit" OnClick="update(this.form);" value="Submit">';
  39. echo '</form>';
  40. ?>


 
 
donc j'ai un form avec les 4 options (2 menus, 2 checkbox) dedans et puis je lance une fonction update
 
mais je n'arrive absolument pas à configurer cette fonction correctement
mon but étant de lancer une page update.php?list=data1&output=data2&loop=data3&play=data4 depuis cette fonction update
 
si tu as une idée ... merci d'avance :)

Reply

Marsh Posté le 06-02-2007 à 18:04:36    

Code :
  1. <script type="text/JavaScript">
  2.  <!--
  3.  function update(Geoform)
  4.  {
  5.   alert("coucou" );
  6.   if(GeoForm.loop.checked == true)
  7.   loop = "oui\r\n";
  8.   window.location.replace("update.php?loop="+loop+"" );
  9.  }
  10.  //-->
  11. </script>
  12. </head>


 
le "coucou" s'affiche correctement, mais rien dautre ne se passe (enfin y'a un raffraichissement de la page avec l'annulation des options choisies précédemment, mais ça n'affiche pas update.php)


Message édité par Moriaben le 06-02-2007 à 18:06:08
Reply

Marsh Posté le 06-02-2007 à 21:19:46    

- deux <form>, un </form> ;
- l'attribut action de <form>, ça sert à quelque chose ;
- pas besoin de faire un echo par ligne ;
- ...


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 07-02-2007 à 09:50:08    

ah oui en effet y'a un probleme sur le <form>
d'ailleurs ça soulève un autre soucis:
comment je peux faire pour envoyer en une fois le résultat de deux <form> vers une seule et meme fonction javascript (qui s'occupe d'updater l'url avec les datas)? ça serait plus pratique que de devoir faire deux refreshs
 
merci :)

Reply

Marsh Posté le 07-02-2007 à 09:55:02    

T'as ni besoin de deux forms, ni besoin de javascript (ou alors j'ai pas tout compris [:figti]).
 
Fais juste un simple formulaire qui pointe sur un script qui récupère tout ça... :spamafote:


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 07-02-2007 à 09:57:00    

Code :
  1. <?php
  2. $homedir="C:\HDG\Multimedia";
  3. $dir=opendir($homedir);
  4. echo '
  5.  Select file to play:<br>
  6.  <form method="post">
  7.  <select name="file">';
  8. while ($file = readdir($dir))
  9. {
  10.  if (($file!="." )&&($file!=".." ))
  11.  echo '<option value="$file">'.$file.'</option>';
  12. }
  13. echo '
  14.  </select>
  15.  </form>';
  16. closedir($dir);
  17. echo '
  18.  Select output:<br>
  19.  <form method="post">
  20.  <select name="output">
  21.   <option value="VGA60">VGA 60Hz</option>
  22.   <option value="VGA75">VGA 75Hz</option>
  23.   <option value="SVGA60">SVGA 60Hz</option>
  24.   <option value="SVGA75">SVGA 75Hz</option>
  25.   <option value="XGA60">XGA 60Hz</option>
  26.   <option value="XGA75">XGA 75Hz</option>
  27.   <option value="SXGA60">SXGA 60Hz</option>
  28.   <option value="SXGA75">SXGA 75Hz</option>
  29.   <option value="UXGA60">UXGA 60Hz</option>
  30.   <option value="720p">720p</option>
  31.   <option value="1080i">1080i</option>
  32.   <option value="AES">AES/EBU</option>
  33.  </select>
  34.  <br>
  35.  Loop option: <input type="checkbox" name="loop" value="loop">
  36.  <br>
  37.  Play: <input type="checkbox" name="play" value="play">
  38.  <br>
  39.  <input type="submit" OnClick="HDG_update(this.form);" value="Submit">
  40.  </form>';
  41. ?>

Reply

Marsh Posté le 07-02-2007 à 09:59:52    

l'idée est enfait d'écrire dans un fichier txt (qui se trouve sur le serveur) les informations fournies par l'utilisateur
 
la 1ere info est un choix parmi une liste de fichiers se trouvant sur le serveur (file)
la 2eme est un choix de résolution (output)
et les deux derniere infos sont des oui ou non (loop, play)

Reply

Marsh Posté le 07-02-2007 à 10:08:23    

T'as encore deux <form> et un </form>... vire ce second <form>.
 
Bref http://www.siteduzero.com/tuto-3-1 [...] aires.html


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 07-02-2007 à 10:08:23   

Reply

Marsh Posté le 07-02-2007 à 10:13:07    

y'a deux <form> (lignes 6 et 20) et deux </form> (lignes 15 et 41)
 
si je fais un seul <form>, je ne pourrai pas séparer les deux listes.

Reply

Marsh Posté le 07-02-2007 à 10:15:18    

Effectivement, j'avais mal lu.
 
Reste qu'un form peut parfaitement transmettre plusieurs valeurs de select à la fois. Pourquoi pas ?


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 07-02-2007 à 10:18:30    

cest pas très praitque. ça veut dire avoir un seul menu déroulant pour deux choix différents, ce n'est pas ce qu'il y'a de plus intuitif à mon gout
en tout cas merci pour le lien, il est très intéressant :)

Reply

Marsh Posté le 07-02-2007 à 10:23:12    

Tu peux très bien avoir deux menus déroulant distincts dans un même formulaire. :spamafote:


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 07-02-2007 à 10:25:45    

ah oui exact, j'avais du faire une bétise la 1ere fois que j'avais essayé!
 
en effet ça simplifiera ma tâche par la suite :)
merci

Reply

Marsh Posté le 07-02-2007 à 10:52:43    

j'ai un autre soucis désormais: je n'arrive pas à récuperer la variable $file depuis ma page update.php
enfait ça me parait presque logique car vu du client, cette "value" n'existe pas mais est remplacée par le nom complet du fichier et donc impossible de faire qqchose de générique ...
 

Code :
  1. <?php
  2. $homedir = "C:\HDG\Multimedia";
  3. $dir = opendir($homedir);
  4. echo '
  5.  Select file to play:<br>
  6.  <form method="post" action="update.php">
  7.  <select name="file">';
  8.  while ($file = readdir($dir))
  9.  {
  10.   if (($file!="." )&&($file!=".." ))
  11.   echo '<option value="'.$file.'">'.$file.'</option>';
  12.  }
  13. echo '
  14.  </select><br>';
  15.  closedir($dir);
  16. echo '
  17.  Select output:<br>
  18.  <select name="output">
  19.   <option value="VGA60">VGA 60Hz</option>
  20.   <option value="VGA75">VGA 75Hz</option>
  21.   <option value="SVGA60">SVGA 60Hz</option>
  22.   <option value="SVGA75">SVGA 75Hz</option>
  23.   <option value="XGA60">XGA 60Hz</option>
  24.   <option value="XGA75">XGA 75Hz</option>
  25.   <option value="SXGA60">SXGA 60Hz</option>
  26.   <option value="SXGA75">SXGA 75Hz</option>
  27.   <option value="UXGA60">UXGA 60Hz</option>
  28.   <option value="720p">720p</option>
  29.   <option value="1080i">1080i</option>
  30.   <option value="AES">AES/EBU</option>
  31.  </select>
  32.  <br>
  33.  Loop :
  34.  <input type="radio" name="loop" value="true" checked="checked" /> Yes
  35.  <input type="radio" name="loop" value="false" /> No
  36.  <br>
  37.  Play :
  38.  <input type="radio" name="play" value="true" checked="checked" /> Yes
  39.  <input type="radio" name="play" value="false" /> No
  40.  <br>
  41.  <input type="submit" value="Submit">
  42.  </form>';
  43. ?>


 
 
et sur la page update.php:
 

Code :
  1. <?php
  2. if (isset($_POST['play']))
  3. {
  4.     echo '<p>Play : ' . htmlentities($_POST['play']) . '</p>';
  5. }
  6. if (isset($_POST['loop']))
  7. {
  8.     echo '<p>Loop : ' . htmlentities($_POST['loop']) . '</p>';
  9. }
  10. if (isset($_POST['output']))
  11. {
  12.     echo '<p>output : ' . htmlentities($_POST['output']) . '</p>';
  13. }
  14. if(isset($_POST[''.$file.'']))
  15. {
  16. echo "coucou";
  17.     echo '<p>file : ' . htmlentities($_POST[''.$file.'']) . '</p>';}
  18. ?>


 
je reçois donc bien les données loop, play et output, mais pas moyen d'avoir file
une idée?
merci :)


Message édité par Moriaben le 07-02-2007 à 10:53:39
Reply

Marsh Posté le 07-02-2007 à 10:56:10    

euh, le nom de ton select c'est file, pas $file.


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 07-02-2007 à 11:02:12    

ah oui lol, pas très malin de ma part!
décidemment j'ai du mal avec le php !
 
ça marche, en tout cas merci bcp pour ton aide, c'est très gentil à toi :jap:

Reply

Sujets relatifs:

Leave a Replay

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