Наш чат в Telegram для обмена идеями, проектами, мыслями, людьми в сфере ИТ г.Ростова-на-Дону: @it_rostov

Выбор страна → регион → город

Имеются три селекта: страна → регион → город. При выборе страны подгружается список регионов, при выборе региона подгружается список городов, а при выборе города нужно делать переход на страницу index.php?country=RU&region=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.
Другие скрипты работы с городами, странами, координатами



.