![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 23 Pomógł: 0 Dołączył: 1.02.2010 Ostrzeżenie: (10%) ![]() ![]() |
Mam problem z aktywnym, bądź nieaktywnym polem SELECT.
W bazie danych mam wpisane państwa i chcę aby po wybraniu Polski był dostępny SELECT z województwami czyli możliwość wybrania województwa, a po wybraniu innej opcji (innego państwa) zablokowany wybór (z logicznych przyczyn). Próbowałem dodać przed SELECT-em z województwami: if($wojewodztwo['id'] == 135) ?> ale nie działało. W czym jest problem?? Całość: Baza danych MySql: Kod CREATE TABLE IF NOT EXISTS `panstwo` ( `id` int(10) unsigned NOT NULL, `nazwa` varchar(50) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; -- -- Zrzut danych tabeli `panstwa` -- INSERT INTO `panstwo` (`id`, `nazwa`) VALUES (1, 'Afganistan'), (2, 'Albania'), (3, 'Algieria'), (4, 'Andora'), (5, 'Angola'), (6, 'Antigua i Barbuda'), (7, 'Arabia Saudyjska'), ..... (165, 'Zumbia'); Docelowy plik PHP: Kod <select name="panstwo" id="panstwo"> <option value="0">Wybierz państwo</option> <?php //pobranie listy państw $panstwa = pobierzPanstwa(); if(isset($_POST['panstwo'])) $panstwSel = $_POST['panstwo']; else $panstwSel = '0'; ?> <?php foreach($panstwa as $panstwo): ?> <option value="<?php echo $panstwo['id']; ?>" <?php if($panstwo['id'] == $panstwSel) echo 'selected'; ?>><?php echo $panstwo['nazwa']; ?></option> <?php endforeach; ?> </select> Kod <select name="wojewodztwo" id="wojewodztwo"> <option value="0">Wybierz województwo</option> <?php //pobranie listy wojewodztw $wojewodztwa = pobierzWojewodztwa(); if(isset($_POST['wojewodztwo'])) $wojewSel = $_POST['wojewodztwo']; else $wojewSel = '0'; ?> <?php foreach($wojewodztwa as $wojewodztwo): ?> <option value="<?php echo $wojewodztwo['id']; ?>" <?php if($wojewodztwo['id'] == $wojewSel) echo 'selected'; ?>><?php echo $wojewodztwo['nazwa']; ?></option> <?php endforeach; ?> </select> Znalazłem też takie rozwiązanie(przykład): Kod <html> <head> <script language="javascript"> function test() { var wartosc_pola_xyz; var tekst=document.getElementById('abc'); wartosc_pola_xyz = document.getElementById('xyz').value; if(wartosc_pola_xyz=='0') { tekst.value="opcja niedostępna"; document.getElementById('abc').disabled=true; } if(wartosc_pola_xyz=='1') { tekst.value="opcja niedostępna"; document.getElementById('abc').disabled=true; } if(wartosc_pola_xyz=='2') { tekst.value=""; document.getElementById('abc').disabled=false; } } </script> </head> <body> <FORM> <select name="xyz" id="xyz" onChange="test()"> <option value=0 selected></option> <option value=1>opcja 1</option> <option value=2>opcja 2</option> </select> <input type="text" name="abc" id="abc" disabled value="opcja niedostępna"> </form> </body> </html> ale zabardzo też mi to nie działało. Co tam można zmienić żeby to zadziałało? |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 516 Pomógł: 63 Dołączył: 27.08.2012 Ostrzeżenie: (0%) ![]() ![]() |
masz tutaj fajny przykład, powinno pomóc:
Później zamiast alerta sprawdzasz czy result == id Polski i wyświetlasz selecta z województwami, np : "document.getElementById("wojewodztwo").disabled=true;", jeśli nie to false. : ) http://stackoverflow.com/questions/5420373...-selected-value |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 23 Pomógł: 0 Dołączył: 1.02.2010 Ostrzeżenie: (10%) ![]() ![]() |
Temat do zamknięcia, wszystko dział.
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 18.07.2025 - 04:19 |