Выбор страна → регион → город
Имеются три селекта: страна → регион → город. При выборе страны подгружается список регионов, при выборе региона подгружается список городов, а при выборе города нужно делать переход на страницу index.php?country=RU®ion=2&city=3 то есть те значения, что были выбраны в трёх селектах, по ним нужно сделать переход на страницу.
Аналогичный скрипт Выбора страна, регион, город с использования технологии Ajax.
<?
// указываем параметры для подключения к MySQL
// подключаемся к БД MySQL
$link = mysqli_connect(HostName, UserName, Password, DBName);
define("db_prefix","pb_");
function is_sel($a, $field)
{
$b = isset($_POST[$field])?$_POST[$field]:NULL;
if($a == $b) return 'selected="selected"';
}
$res = mysqli_query($link, 'SELECT * FROM '.db_prefix.'country');
?>
<form id="frm" method="post">
<select name="country" onchange="document.getElementById('frm').submit()" >
<option value='null'>- Выберите страну -</option>
<?
// выводим все строки из столбца name таблицы country
while($row = mysqli_fetch_assoc($res))
echo "<option ".is_sel($row['id'],'country')." value='" . $row['id'] . "'>" . $row['name'] . "</option>\r\n";
echo "</select>";
if(isset($_POST['country']))
{
$res=mysqli_query($link, 'SELECT * FROM '.db_prefix.'area WHERE country="'.mysql_real_escape_string($_POST['country']).'"');
if(mysqli_num_rows($res)){
echo "<select name=\"region\" onchange=\" document.getElementById('frm').submit();\" >
<option id=\"region\" value='0'>- Выберите pегион -</option>";
while($row = mysqli_fetch_assoc($res))
echo "<option ".is_sel($row['id'],'region')." value='" . $row['id'] . "'>" . $row['name'] . "</option>\r\n";
echo "</select>";
}else{ // выбираю города без учета региона
$res=mysqli_query($link, 'SELECT * FROM '.db_prefix.'city WHERE country='.mysql_real_escape_string($_POST['country']));
echo "<select id=\"city\" name=\"city\" onchange=\"document.getElementById('frm').submit()\" >
<option value='0'>- Выберите город -</option>";
while($row = mysqli_fetch_assoc($res))
echo "<option ".is_sel($row['id'],'city')." value='" . $row['id'] . "'>" . $row['name'] . "</option>\r\n";
echo "</select>";
}
}
$region = isset($_POST['region'])?$_POST['region']:NULL;
if($region && $region !== 0)
{
$res=mysqli_query($link, 'SELECT * FROM '.db_prefix.'city WHERE area='.(int)$_POST['region']);
echo "<select id=\"city\" name=\"city\" onchange=\"document.getElementById('frm').submit()\" >
<option value='0'>- Выберите город -</option>";
while($row = mysqli_fetch_array($res))
echo "<option ".is_sel($row['id'],'city')." value='" . $row['id'] . "'>" . $row['name'] . "</option>\r\n";
echo "</select>";
}
?>
</form>
<?
$city = isset($_POST['city'])?$_POST['city']:NULL;
if($city && $city !== 0)
{
$res=mysqli_query($link, 'SELECT * FROM '.db_prefix.'city WHERE id='.(int)$_POST['city'].' LIMIT 1');
$row = mysqli_fetch_array($res);
echo "<h2>Хочу в ".$row['name']."!</h2>";
}
?>
Скрипт выбора страна, регион, город на чистом javascript с использованием нашего API.
Другие скрипты работы с городами, странами, координатами
.
Прокомментировать/Отблагодарить