Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [HTML][PHP]Dodatkowe pole formularza po wybraniu jednej opcji z innego formularza.
NickOver
post 31.03.2014, 06:05:46
Post #1





Grupa: Zarejestrowani
Postów: 332
Pomógł: 10
Dołączył: 13.03.2014
Skąd: Bydgoszcz

Ostrzeżenie: (0%)
-----


Siemka.
Potrzebuję jakąś magiczną sztuczke która po wybraniu w jednym formularzu wartości "inne" pokaże dodatkową komórke, bez przeładowania strony. Jest wogóle coś takiego możliwe? Jeśli jest to jakąś podpowiedz poprosze jak się za to zabrać wink.gif
Go to the top of the page
+Quote Post
ghost1511
post 31.03.2014, 07:05:46
Post #2





Grupa: Zarejestrowani
Postów: 186
Pomógł: 18
Dołączył: 2.09.2010

Ostrzeżenie: (0%)
-----


Jest możliwe. Musisz w Javascript obsłużyć zdarzenie zaznaczenia checkboxa (czy innego pola) i dodać do formularza pole tekstowe.
Go to the top of the page
+Quote Post
NickOver
post 31.03.2014, 07:22:04
Post #3





Grupa: Zarejestrowani
Postów: 332
Pomógł: 10
Dołączył: 13.03.2014
Skąd: Bydgoszcz

Ostrzeżenie: (0%)
-----


Właśnie w tym problem że to nie będzie checkbox tylko select. Wystarczy tam dac if'a $_POST['jezyk']=inne czy trzeba bardziej kombinowac?
Go to the top of the page
+Quote Post
Turson
post 31.03.2014, 07:43:49
Post #4





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

Ostrzeżenie: (0%)
-----


java script: onchange
Go to the top of the page
+Quote Post
NickOver
post 31.03.2014, 07:55:07
Post #5





Grupa: Zarejestrowani
Postów: 332
Pomógł: 10
Dołączył: 13.03.2014
Skąd: Bydgoszcz

Ostrzeżenie: (0%)
-----


  1. java script: onchange
jak znam angielski odnosi sie tylko do zmiany, a mi chodzi aby to się pojawiało tylko przy wartosci "inne" da radę to zrobić?
Go to the top of the page
+Quote Post
Turson
post 31.03.2014, 07:57:15
Post #6





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

Ostrzeżenie: (0%)
-----


No tak, ale możesz wykryć jaka opcja jest wybrana i jeżeli wartość=="inne" to pokażesz dodatkowe pole
Go to the top of the page
+Quote Post
NickOver
post 31.03.2014, 09:05:15
Post #7





Grupa: Zarejestrowani
Postów: 332
Pomógł: 10
Dołączył: 13.03.2014
Skąd: Bydgoszcz

Ostrzeżenie: (0%)
-----


Turson a chciało by Ci się napisać coś takiego? Niestety w js nie pisałem nic, w google jakoś mało o tym pisze, a Tobie pewnie zajmie to pół minutki wink.gif
Z góry dzięki wielkie biggrin.gif
Go to the top of the page
+Quote Post
Turson
post 31.03.2014, 09:11:28
Post #8





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

Ostrzeżenie: (0%)
-----


http://jsfiddle.net/nkzfL/
Go to the top of the page
+Quote Post
NickOver
post 31.03.2014, 12:41:16
Post #9





Grupa: Zarejestrowani
Postów: 332
Pomógł: 10
Dołączył: 13.03.2014
Skąd: Bydgoszcz

Ostrzeżenie: (0%)
-----


Niestety coś nie działa ;( Mogółby ktoś spojrzeć?
  1. <html>
  2. <head>
  3. <script
  4. type="text/javascript">
  5. $(document).ready(function(){
  6. $("#a").on('change', function(){
  7. if($(this).val()=="inne")
  8. $("#inne").show();
  9. else
  10. $("#inne").hide();
  11. })
  12. })
  13. </script>
  14. </head>
  15. </html>
  16. <?php
  17. include ('db.php');
  18. $a= $_SESSION['id'];
  19. $select=mysql_query("SELECT * FROM lang WHERE kto='$a'");
  20. echo '<table>';
  21. while($r = mysql_fetch_array($select))
  22. {
  23. echo '<tr><td>'.$r["jezyk"].'';
  24. echo '</td><td>'.$r["poziom"].'';
  25. echo '</td></tr>';
  26. }
  27. echo '</table>';
  28. echo '<form action="lang.php" method="POST">
  29. <select id="a" type="text" name="lang">
  30. <option>opcja 1</option>
  31. <option>inne</option>
  32. </select>
  33. <input name="lan" id="inne" style="display:none"><br>
  34. <select type="text" name="lvl">
  35. <option>podstawowy</option>
  36. <option>średni</option>
  37. <option>zaawansowany</option>
  38. </select>
  39. <input type="submit" name="ok" value="Wyślij!">
  40. </form>';
  41. if(isset($_POST['ok']))
  42. {
  43. $lang = trim($_POST['lang']);
  44. $lvl = trim($_POST['lvl']);
  45. $lan = trim($_POST['lan']);
  46. if(isset ($lan))
  47. {
  48. $lang = $lan;
  49. }
  50. $query = "INSERT INTO `lang` (`jezyk`, `poziom`, `kto`) VALUES ('$lang', '$lvl', '$a')";
  51. if(mysql_query($query))
  52. {
  53. echo 'Dodane!!';
  54. header("Location: lang.php");
  55. }
  56. else echo 'Wystąpił błąd';
  57. }
  58. ?>
Go to the top of the page
+Quote Post
Turson
post 31.03.2014, 12:43:40
Post #10





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

Ostrzeżenie: (0%)
-----


Do <head> dokumentu musisz dołączyć bibliotekę jquery
Go to the top of the page
+Quote Post
b4rt3kk
post 31.03.2014, 12:49:01
Post #11





Grupa: Zarejestrowani
Postów: 1 933
Pomógł: 460
Dołączył: 2.04.2010
Skąd: Lublin

Ostrzeżenie: (0%)
-----


Brakuje też dla option atrybutu value, czyli:

  1. <option value="inne">inne</option>


--------------------
Jeśli pomogłem, kliknij proszę 'pomógł'. Dzięki.
Go to the top of the page
+Quote Post
NickOver
post 31.03.2014, 12:55:05
Post #12





Grupa: Zarejestrowani
Postów: 332
Pomógł: 10
Dołączył: 13.03.2014
Skąd: Bydgoszcz

Ostrzeżenie: (0%)
-----


Dzięki wielkie wink.gif
Jeszcze jedno i już chyba ostatnie pytanie. Gdy wybieram inne i coś wpisuję działa, przesyła się do bazy jako zmienna $lang,
lecz gdy to dodatkowe pole jest puste nie wysyła mi nic do bazy danych (znaczy wysyła, ale zamienia zmienna $lang na zmienna $lan, lecz ta zamiana miała nastąpić tylko w przypadku jeśli $lan nie jest puste) Gdzie popełniłem błąd?
Go to the top of the page
+Quote Post
b4rt3kk
post 31.03.2014, 13:00:49
Post #13





Grupa: Zarejestrowani
Postów: 1 933
Pomógł: 460
Dołączył: 2.04.2010
Skąd: Lublin

Ostrzeżenie: (0%)
-----


W warunku isset, bo zmienna zostaje każdorazowo utworzona, w tej linii:

  1. $lan = trim($_POST['lan']);


I nie ma znaczenia, to że jest pusta, bo sprawdzasz jedynie czy istnieje. Zmień isset na empty.


--------------------
Jeśli pomogłem, kliknij proszę 'pomógł'. Dzięki.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 29.05.2025 - 07:24