Mam 3 pliki index.html
Kod
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-2">
<script type="text/javascript" src="ajax.js"></script>
<script type="text/javascript">
var ajax = new sack();
function getml(sel)
{
var cc = sel.options[sel.selectedIndex].value;
document.getElementById('miasto').options.length = 0;
if(cc.length>0){
ajax.requestFile = 'getm.php?cc='+cc;
ajax.onCompletion = makem;
ajax.runAJAX();
}
}
function makem()
{
var obj = document.getElementById('miasto');
eval(ajax.response);
}
</script>
</head>
<body>
<form action="">
<select id="kraj" name="kraj" size="1" onchange="getml(this)">
<option value="">--</option>
<?php
$conn = mysql_connect('mysql2.yoyo.pl','db698643','*****');
$db = mysql_select_db('db698643',$conn);
if($sql = mysql_query("SELECT * FROM kraj ORDER BY nazwa ASC",$conn))
while ($rekord = mysql_fetch_array($sql)){
if($rekord['nazwa']=='Polska')
echo '<option value="'.$rekord['id'].'" selected>'.$rekord['nazwa'].'</option>';
else echo '<option value="'.$rekord['id'].'">'.$rekord['nazwa'].'</option>';
}
mysql_close($conn);
?>
</select>
<select id="miasto" name="miasto" size="1">
<option value="">Wybierz miasto</option>
</select>
</form>
</body>
</html>
<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-2">
<script type="text/javascript" src="ajax.js"></script>
<script type="text/javascript">
var ajax = new sack();
function getml(sel)
{
var cc = sel.options[sel.selectedIndex].value;
document.getElementById('miasto').options.length = 0;
if(cc.length>0){
ajax.requestFile = 'getm.php?cc='+cc;
ajax.onCompletion = makem;
ajax.runAJAX();
}
}
function makem()
{
var obj = document.getElementById('miasto');
eval(ajax.response);
}
</script>
</head>
<body>
<form action="">
<select id="kraj" name="kraj" size="1" onchange="getml(this)">
<option value="">--</option>
<?php
$conn = mysql_connect('mysql2.yoyo.pl','db698643','*****');
$db = mysql_select_db('db698643',$conn);
if($sql = mysql_query("SELECT * FROM kraj ORDER BY nazwa ASC",$conn))
while ($rekord = mysql_fetch_array($sql)){
if($rekord['nazwa']=='Polska')
echo '<option value="'.$rekord['id'].'" selected>'.$rekord['nazwa'].'</option>';
else echo '<option value="'.$rekord['id'].'">'.$rekord['nazwa'].'</option>';
}
mysql_close($conn);
?>
</select>
<select id="miasto" name="miasto" size="1">
<option value="">Wybierz miasto</option>
</select>
</form>
</body>
</html>
getm.php
Kod
getm.php
<?PHP
if(isset($_GET['cc'])){
$k=htmlspecialchars($_GET['cc']);
$conn = mysql_connect('mysql2.yoyo.pl','db698643','****');
$db = mysql_select_db('db698643',$conn);
echo '<option value="">--</option>';
if($sql = mysql_query("SELECT * FROM miasto WHERE kraj='$k' ORDER BY nazwa ASC",$conn))
while ($rekord = mysql_fetch_array($sql)){
echo '<option value="'.$rekord['id'].'">'.$rekord['nazwa'].'</option>';
}
mysql_close($conn);
}
?>
<?PHP
if(isset($_GET['cc'])){
$k=htmlspecialchars($_GET['cc']);
$conn = mysql_connect('mysql2.yoyo.pl','db698643','****');
$db = mysql_select_db('db698643',$conn);
echo '<option value="">--</option>';
if($sql = mysql_query("SELECT * FROM miasto WHERE kraj='$k' ORDER BY nazwa ASC",$conn))
while ($rekord = mysql_fetch_array($sql)){
echo '<option value="'.$rekord['id'].'">'.$rekord['nazwa'].'</option>';
}
mysql_close($conn);
}
?>
oraz dołączony plik ajax.js
to struktura tabel
Kod
CREATE TABLE kraj (
id int(11) unsigned NOT NULL auto_increment,
nazwa varchar(255) NOT NULL,
PRIMARY KEY (id),
UNIQUE KEY nazwa (nazwa)
);
CREATE TABLE miasto (
id int(11) unsigned NOT NULL auto_increment,
nazwa varchar(255) NOT NULL,
kraj int(11) NOT NULL,
PRIMARY KEY (id)
);
id int(11) unsigned NOT NULL auto_increment,
nazwa varchar(255) NOT NULL,
PRIMARY KEY (id),
UNIQUE KEY nazwa (nazwa)
);
CREATE TABLE miasto (
id int(11) unsigned NOT NULL auto_increment,
nazwa varchar(255) NOT NULL,
kraj int(11) NOT NULL,
PRIMARY KEY (id)
);
Pierwszy Select wyświetla mi kraje z bazy, lecz drugi jest pusty. Czy w kodzie jest błąd? prosze o pomoc, pozdrawiam