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');
`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>
<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>
<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>
<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?