Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML][MySQL][PHP]Formularz - select multiple
Forum PHP.pl > Forum > Przedszkole
Fei
Dopiero zaczynam z php.
Mam taki kod:
  1. <?php
  2. include("connection.php");
  3. ?>
  4. <form action="" method="POST">
  5. <table>
  6. <tr><td colspan="2"><center><h2>DODAWANIE FILMU</h2></center><div></div></td></tr>
  7. <tr><td>TytuĹ?:</td><td><input type="text" name="tytul" style="width: 400px"/></td></tr>
  8. <tr><td>Gatunek:</td><td><select name="gatunek" style="width: 400px" multiple="multiple">
  9. <option value="komedia">Komedia</option>
  10. <option value="horror">Horror</option>
  11. <option value="obyczajowy">Obyczajowy</option>
  12. <option value="akcja">Akcja</option>
  13. <option value="anime">Anime</option>
  14. </select></td></tr>
  15. <tr><td valign="top">Opis:</td><td><textarea style="width: 400px; height: 300px;" name="opis"></textarea></td></tr>
  16. <tr><td>Mirror:</td><td><input type="text" name="mirror" style="width: 400px"/></td></tr>
  17. <tr><td>Dodatkowy mirror(nieobowiazkowe):</td><td><input type="text" name="mirror2" style="width: 400px"/></td></tr>
  18. <tr><td>Zdjecie:</td><td><input type="text" name="zdjecie" style="width: 400px" /></td></tr>
  19. <tr><td>TwĂłj pseudonim:</td><td><input type="text" name="nick" style="width: 400px"/></td></tr>
  20. <tr><td colspan="2"><center><input type="submit" value="Dodaj" name="wyslij" style="width: 80px; height: 30px; margin-top: 30px;"/></center></td></tr>
  21. </table>
  22. </form>
  23.  
  24. <?php
  25. if(isset($_POST['wyslij']) && (!empty($_POST['mirror']) && !empty($_POST['opis']) && !empty($_POST['zdjecie']) && !empty($_POST['tytul'])))
  26. {
  27. $nick = "Go���";
  28. $tytul = mysql_real_escape_string(htmlspecialchars($_POST['tytul']));
  29. $opis = mysql_real_escape_string(htmlspecialchars($_POST['opis']));
  30. $nick = $_POST['nick'];
  31. $gatunek = $_POST['gatunek'];
  32. $mirror = $_POST['mirror'];
  33. $mirror2 = $_POST['mirror2'];
  34. $zdjecie = $_POST['zdjecie'];
  35.  
  36. $dodaj = "INSERT INTO filmy(tytul, gatunek, opis, data, czas, nick, mirror, mirror2, zdjecie)
  37. VALUES ( '$tytul', '$gatunek', '$opis', NOW(), NOW(), '$nick', '$mirror', '$mirror2', '$zdjecie')";
  38. $wynik = mysql_query($dodaj) or die(mysql_error());
  39. }
  40.  
  41. else if(isset($_POST['wyslij']) && (empty($_POST['mirror']) || empty($_POST['opis']) || !mpty($_POST['zdjecie']) || empty($_POST['tytul'])))
  42. {
  43. echo "<p style=\"color: red;\"><center>Nie wpypeĹ?niĹ?eĹ? wszystkich pĂłl!</center></p>";
  44. }
  45.  
  46.  
  47. ?>

Jeśli w select zaznaczam więcej niż jedną opcję, to i tak do bazy wysyła tylko jedno. Np. chcę żeby gatunek był i komedią i horrorem, ale w bazie widnieje sam horror.
b_chmura
Przede wszystkim w select w name dodaj "[]" czyli
  1. <select name="nazwa[]">
  2. ...


wtedy zmienna $_POST['nazwa'] zwróci Ci tablice zaznaczonych elementów. Musisz to odpowiednio skleić (funkcja implode() ) a przy odczytywaniu rozdzielić (explode() ).
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.