Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [js+php]Dynamiczny formularz
aleksandra
post
Post #1





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 13.07.2006

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


Cześć
chciałabym zrobić interaktywny formularz zawierający m.in listę (<select>), lista jest generowana dynamicznie przez php z zawartości tabeli mysql i w ogólności jej zawartość nie jest stała.
Po wybraniu jednej z pozycji ("inne") ma się pokazać dodatkowe pole input.
Wiem już, że wykonać należy to z wykorzystaniem java script, znalazłam cechy obiektu select, ale zadne nie przedstawia zaznaczonej pozycji co do wartości a tylko co do indeksu (który z uwagi na zmienna zawartość listy może sie zmieniać - stała jest nazwa opcji)

Wymyśliłam coś takiego:
  1. onload=function(){
  2. document.formularz.input ustaw jako niewidzialny}
  3.  
  4. function sprawdz(){
  5.  
  6. with(document.formularz){
  7. pobierz options dla obiektu lista
  8. sprawdz jaki indeks ma opcja "inne"
  9. jesli selectedIndex dla obiektu lista = wcześnie sprawdzonemu indeksowi ustaw widzialność obiektu input
  10. w przeciwny wypadku pozostaw niewidzialny
  11. }
  12.  
  13. <form name="formularz">
  14.  
  15. <input type="text" name="input" onfocus(?)="sprawdz()">
  16. <select name="lista" >
  17. <!-- przykladowy wyglad wygenerowanej przez php listy-->
  18. <option >A
  19. <option >B
  20. <option>inne
  21. </form>

Jako że javascript widzę pierwszy raz sadsmiley02.gif nie mam pojecia jak to zakodować ani nawet czy to ma szanse zadziałać (i czy taka postac listy select jest poprawna, bo w przykładach js widziałam nieco inną)

Z góry ogromnie dziękuję za wszelką pomoc
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
Ja_Szczur
post
Post #2





Grupa: Zarejestrowani
Postów: 115
Pomógł: 0
Dołączył: 4.12.2005
Skąd: Strzyżów

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


kod pisany "na gorąco" :]

  1. ...
  2. <body onload="sprawdz()">
  3. ...
  4. <form method="post" name="formularz">
  5. <input type="text" name="pole">
  6.  
  7. <select name="sel" onChange="sprawdz()">
  8. <option value="wartosc1"> tekst1 </option>
  9. <option value="wartosc2"> tekst2 </option>
  10. ....
  11. <option value="inne"> ...inne </option>
  12. </form>
  13.  
  14. <script language="JavaScript">
  15. function sprawdz()
  16. {
  17. if( document.formularz.sel.options[ document.formularz.sel.selectedIndex ].value == "inne" )
  18. document.formularz.pole.style.display = 'inline';
  19. else
  20. document.formularz.pole.style.display = 'none';
  21. }


--------------------
"No bo z fasolą to człowiek przynajmniej wie, na czym stoi..."
Pomniejsze bóstwa, Terry Pratchett

php :*
Go to the top of the page
+Quote Post
aleksandra
post
Post #3





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 13.07.2006

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


blinksmiley.gif nie spodziewałam się gotowego kodu, dziękuję ogromnie.

Jakie to proste jak ktos napisze biggrin.gif
Pięknie działa. Jeszcze raz dziękuję.

Mam jedno pytanie:
czy opcja value
<option value="wartosc1"> tekst1 </option>
jest niezbedna? zawsze konstruowałam listy wyboru bez niej i wszystko działało biggrin.gif
Go to the top of the page
+Quote Post
piotrekkr
post
Post #4





Grupa: Zarejestrowani
Postów: 386
Pomógł: 25
Dołączył: 28.09.2005

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


tak mi sie wydaje ze jesli nie ma value="wartosc to za wartosc tego przyjmowane jest to co jest pomiedzy
Kod
<option>...</option>


Ten post edytował piotrekkr 13.07.2006, 19:57:14
Go to the top of the page
+Quote Post
Athlan
post
Post #5





Grupa: Developerzy
Postów: 823
Pomógł: 12
Dołączył: 18.12.2005

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


Cytat(aleksandra @ 13.07.2006, 18:19 ) *
czy opcja value
<option value="wartosc1"> tekst1 </option>
jest niezbedna? zawsze konstruowałam listy wyboru bez niej i wszystko działało biggrin.gif


sobie sprawdź:

  1. <?php
  2. if($_POST['value_test'])
  3. {
  4. echo'Wypluło: '.$_POST['value_test'];
  5. }
  6. else
  7. {
  8. <form action="'.$_SERVER['PHP_SELF'].'" method="post">
  9. <select name="value_test">
  10. <option>costam</option>
  11. <input type="submit" value="a se testuj biggrin.gif">
  12. </select>
  13. </form>
  14. ';
  15. }
  16. ?>

[pisane na szybko]
pozdro smile.gif

EDIT... ach zapomnialem przycisku submit tongue.gif poprawione

Ten post edytował Athlan 14.07.2006, 15:02:25


--------------------
Portfolio: Vgroup.pl | athlan.pl | Test.php.pl - sprawdź się z wiedzy o PHP i ułóż własne pytania!
Pomogłem? Kliknij pod postem.
Go to the top of the page
+Quote Post
-Gość-
post
Post #6





Goście







He, he, dzięki.
Aż taka początkująca nie jestem co by sobie submit nie dodać tongue.gif

Ogromne dzięki za pomoc
Go to the top of the page
+Quote Post
aleksandra
post
Post #7





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 13.07.2006

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


Upss, biggrin.gif
Zapomniałam się zalogować. Sorki

Jeszcze raz dzięki za pomoc
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 Aktualny czas: 20.08.2025 - 05:53