Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Obsluga pola wyboru w formularzu
Forum PHP.pl > Forum > Przedszkole
ppsi
Witam

Jestem w trakcie robienia formularza i napotkałem się na taki problem którego nie potrafię sam rozwiązać.
A wieć mam zrobione pole manu do wyboru województwa oto kod w HTML:
Kod
Wojewodztwo: <br>
<select name="wojewodztwo" > <option  value="brakwojewodztwa"> <option  value="wielkopolskie">wielkopolskie <option  value="podkarpackie">podkarpackie <option  value="malopolskie">malopolskie <option  value="zachodniopomorskie">zachodniopomorskie </select>

Chce aby zrobić kiedy użytkownik wybieże odpowienie wojewodztwo zostanie wyswietlone raz jeszcze cale pole menu z wojewodztwami lecz bedzie zaznaczone pole ktore wybrał użytkownik. Oczywiście wyszystko w php.Jak coś takiego zrobic? prosze o pomoc.Pozdrawiam cale forum.papaptki
gladiror
Mi się wydaje, ze najlepiej to zrobić wysyłając zmienną z nazwa wojewodztwa zaznaczonego. Później robisz skrypt, który będzie segregował nazwy województw... Chodzi o to, żeby jako pierwsze ustawial nazwe wybranego województwa, a później żeby skrypt dodawał nastepne nazwy....
ppsi
Dzieki za odpowiedz niestety nie mam pojecia jak to wykonac w praktyce poniewz jestem zupelnie poczatkujacy. Czy pokaze mi ktos jak powinien wygladac do tego kod? z gory dziekuje i pozdrawiam
mike
Pisane z palca (w poniedziałek rano winksmiley.jpg ), więc mógł wkraść się błąd tongue.gif

  1. <?php
  2.  
  3. $intSelected = ( empty( $_POST[ 'wojewodztwo' ] ) ) ? 0 : $_POST[ 'wojewodztwo' ];
  4.  
  5. $arrDistricts = array( 0 => 'Brak', 1 => 'Małopolskie', 2 => 'Kazowieckie', 3 => 'i tak dalej' );
  6.  
  7. ?>
  8.  
  9. <select name="wojewodztwo" >
  10.  
  11. <?
  12.  
  13. foreach( $arrDistricts as $intKey => $strValue )
  14. {
  15. $strOption = '<option value="' . $intKey . '"';
  16. if( $intKey == $intSelected )
  17. {
  18. $strOption .= ' selected="selected"';
  19. }
  20. $strOption .= '>' . $strValue . '</option>';
  21.  
  22. echo $strOption;
  23.  
  24. }
  25.  
  26. ?>
  27.  
  28. </select>
ppsi
hejak dzieki za kodzik co prawda nie wyskoczyl zaden blad ale nie dziala to kurcze poprawnie. Juz mowie co sie dzieje .Obojetnie jakie zostanie wybrane wojewodztwo po nacisnieciu wyślij zawsze wyskakuje zaznaczone brakwojewodztwa czyli brak , obojetnie co wybiore wcześniej zawsze po wyslaniu jest zaznaczone brakwojewodztwa.Hmmm trzeba było by pewnie troszke dopracować ten srypt.Ma ktoś jakiś pomysł? z góry dziekuje i pozdrawiam całe forum papaptki
nospor
aczy ty wogole do formualrza podpiales? He? Bo to co opisujesz to wyglada jakbys tego nie zrobil lub zrobiles zle.

  1. <?php
  2.  
  3. $intSelected  = ( empty( $_POST[ 'wojewodztwo' ] ) ) ? 0 : $_POST[ 'wojewodztwo' ];
  4.  
  5. $arrDistricts = array( 0 => 'Brak', 1 => 'Małopolskie', 2 => 'Kazowieckie', 3 => 'i tak dalej' );
  6.  
  7. ?>
  8. <form method="post">
  9. <select name="wojewodztwo" >
  10.  
  11. <?
  12.  
  13. foreach( $arrDistricts as $intKey => $strValue )
  14. {
  15.     $strOption = '<option  value="' . $intKey . '"';
  16.     if( $intKey == $intSelected )
  17.     {
  18.         $strOption .= ' selected="selected"';
  19.     }
  20.     $strOption .= '>' . $strValue . '</option>';
  21.  
  22.     echo $strOption;
  23.  
  24. }
  25.  
  26. ?>
  27. </select>
  28. <input type="submit" value="asd" />
  29.  
  30.  
  31. </form>
ppsi
Tak nospor mam zrobione caly formularz w HTML wyglada tak:
Kod
<form name="formularz" method="post" action="mail.php">

...
Kod
Wojewodztwo: <br>
<select name="wojewodztwo" > <option  value="brakwojewodztwa"> <option  value="wielkopolskie">wielkopolskie <option  value="podkarpackie">podkarpackie <option  value="malopolskie">malopolskie <option  value="zachodniopomorskie">zachodniopomorskie </select><br>

...
Kod
<input type="submit" name="submit" value="wyślij">
<input type="reset" name="reset" value="od nowa">

</form

Tak w skrucie wyglada kod HTML
Natomiast php tak:
  1. <?
  2. if (empty($_POST['imie'])  || empty($_POST['nazwisko'])  ||  empty($_POST['miasto']) || empty($_POST['kod1'])   ||   empty($_POST['kod2'])  || empty($_POST['ulica'])  || empty($_POST['nrdomu']) || empty($_POST['nrmieszkania'])  || empty($_POST['rok']) || empty($_POST['dzien'])  || empty($_POST['kierunkowy']) || empty($_POST['nrtel']) || empty($_POST['email'])  || empty($_POST['kolor'])  || empty($_POST['regulamin'])  ||  empty($_POST['piosenkarze'])   ||  ($_POST['wojewodztwo'] ==  'brakwojewodztwa' )  || ($_POST['miesiac'] ==  'brakmiesiaca' )   || $_POST['komentarz']==""    )
  3. {
  4. echo '<form name=form method=post action=mail.php>';
  5. echo 'Nie wypełniłe&para; wszystkich pól formularza... uzupełnij brakuj&plusmn;ce pola<br>';
  6. }
  7. else
  8. {
  9. echo '<form name=form method=post action=mail.php>';
  10. }
  11.  
  12. ?>

...
  1. $intSelected  = ( empty( $_POST[ 'wojewodztwo' ] ) ) ? 0 : $_POST[ 'wojewodztwo' ];
  2.  
  3. $arrDistricts = array( 0 => '', 1 => 'wielkopolskie', 2 => 'podkarpackie', 3 => 'malopolskie', 4 => 'zachodniopomorskie' );
  4.  
  5. ?>
  6. <form method="post">
  7. <select name="wojewodztwo" >
  8.  
  9. <?
  10.  
  11. foreach( $arrDistricts as $intKey => $strValue )
  12. {
  13.     $strOption = '<option  value="' . $intKey . '"';
  14.     if( $intKey == $intSelected )
  15.     {
  16.         $strOption .= ' selected="selected"';
  17.     }
  18.     $strOption .= '>' . $strValue . '</option>';
  19.  
  20.     echo $strOption;
  21.  
  22. }
  23. ?>
  24. </select>
  25. <?

Tak to wyglada w skrucie w miejscach ... wiadomo jest dalsza cześć kodu której nie podałem ze wzgledu na dużą niepotrzebą ilość kodu. NOSPOR problem nadal ten sam.Kiedy wybiore w formularzu HTML wojewodztwo zrobie wyslij formularz sie przeladuje odpali sie mail.php i wyskocza wszystkie pola wlacznie z wojewodztwami w którym powinno być zaznaczone pole które wcześniej użytkownik wybrał.Natomiast efekt jest taki że obojetnie co zostanie wybrane w formularzu HTML po wysłaniu wyskakuje zawsze brakwojewodztwa. Cos chyba trzeba było by poprawić.Zrobiłem nospor nawet to co podałeś i efekt ten sam niepoprawny.Prosze o pomoc w rozwiązaniu tego problemu.Z góry WAM dzieki i POZDRÓWKA
nospor
Kod, który ci podałem, który zresztą byl modyfikacją kodu mike_mech działa i pod operą i pod IE. Może cos źle go wkleiles.
(ups - pomylilem /select z /form kolejnoscią. juz poprawilem. pisalem na szybko)

Pozatym u Ciebie w kodzie widzę pewną niekonsekwnecje:

  1. <?php
  2.  
  3. //...
  4. else
  5. {
  6. echo '<form name=form method=post action=mail.php>';
  7. }
  8.  
  9. ?>

co oznacza ze gdy nie wypelni ktos wszytkich pol formularza, to ty form nie tworzysz, co juz jest bledem
ppsi
dzieki nospor bardzo możliwe sam to kombinowałem a że jestm poaczatujacy to mogłem przekombinować. Mój poacztek skryptu wyglada tak w php :
  1. <?
  2. if (empty($_POST['imie']) || empty($_POST['nazwisko']) || empty($_POST['miasto']) || empty($_POST['kod1'])  ||  empty($_POST['kod2']) || empty($_POST['ulica']) || empty($_POST['nrdomu']) || empty($_POST['nrmieszkania']) || empty($_POST['rok']) || empty($_POST['dzien']) || empty($_POST['kierunkowy']) || empty($_POST['nrtel']) || empty($_POST['email']) || empty($_POST['kolor']) || empty($_POST['regulamin']) || empty($_POST['piosenkarze'])  || ($_POST['wojewodztwo'] == 'brakwojewodztwa' ) || ($_POST['miesiac'] == 'brakmiesiaca' )  || $_POST['komentarz']=="" )
  3. {
  4. echo '<form name=form method=post action=mail.php>';
  5. echo 'Nie wypełniłe&para; wszystkich pól formularza... uzupełnij brakuj&plusmn;ce pola<br>';
  6. }
  7. else
  8. {
  9. echo '<form name=form method=post action=mail.php>';
  10. }
  11.  
  12. ?>

Nie wiem czy jest dobrze zapisane ale powiem może co chciałem uzyskać. Jeśli powyższe pola nie zostana wypelnione (które kolwie z nich lub wszystkie) wtedy twożymy formularza i wyskokuje kominikat "nie wszystkie pola zostały wypełnione" .Else miało znaczyć ze jeśli wszystkie pola będa wypełnione wtedy również twożymy formularz lecz komunikat nie wyskauje. Pewnie zle coś zapisałem wogle wydaje mi sie ten zapis jakoś mało prymitywny. Nospor według Ciebie jak to powinnienem zapisac? Dzieki bardzo nospor niech moc będzie z TOBA.papaptki
nospor
No faktycznie nie zauwazylem, że ty i w if i w else dajesz te form. No ale niepotzrebnie skoro to za kazdym razem ma byc.
Ajak ma wygladac, no tak jak pisalismy wczesniej

  1. <?
  2. if (tu te twoje warunki z uwzgledniem czy wogole forumalrz wyslano)
  3. {
  4. echo 'Nie wypełniłe&para; wszystkich pól formularza... uzupełnij brakuj&plusmn;ce pola<br>';
  5. }
  6. elseif (formualrzwyslano i ok)
  7. {
  8.    echo 'wypelniles wszytko teraz jakas akcja';
  9. }
  10. $intSelected  = ( empty( $_POST[ 'wojewodztwo' ] ) ) ? 0 : $_POST[ 'wojewodztwo' ];
  11.  
  12. $arrDistricts = array( 0 => 'Brak', 1 => 'Małopolskie', 2 => 'Kazowieckie', 3 => 'i tak dalej' );
  13.  
  14. ?>
  15. <form method="post">
  16. <select name="wojewodztwo" >
  17.  
  18. <?
  19.  
  20. foreach( $arrDistricts as $intKey => $strValue )
  21. {
  22.     $strOption = '<option  value="' . $intKey . '"';
  23.     if( $intKey == $intSelected )
  24.     {
  25.         $strOption .= ' selected="selected"';
  26.     }
  27.     $strOption .= '>' . $strValue . '</option>';
  28.  
  29.     echo $strOption;
  30.  
  31. }
  32.  
  33. ?>
  34. </select>
  35. <input type="submit" value="asd" />
  36.  
  37.  
  38. </form>

No i oczywiscie dodaj akcje, ze gdy ktos wypelnil wszystko to cos ma sie zrobic
ppsi
Dziala Panie i Panowie dziekuje bardzo za pomoc wielka pozdrowka dla mike_mech oraz NOSPORA i calego forum papaptki
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.