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
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ć (IMG:style_emoticons/default/wink.gif)
Go to the top of the page
+Quote Post
ghost1511
post
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
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
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
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
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
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 (IMG:style_emoticons/default/wink.gif)
Z góry dzięki wielkie (IMG:style_emoticons/default/biggrin.gif)
Go to the top of the page
+Quote Post
Turson
post
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
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
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
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>
Go to the top of the page
+Quote Post
NickOver
post
Post #12





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

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


Dzięki wielkie (IMG:style_emoticons/default/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
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.
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 3.10.2025 - 14:23