За последние 24 часа нас посетили 17780 программистов и 1654 робота. Сейчас ищут 1584 программиста ...

Вывод городов

Тема в разделе "Решения, алгоритмы", создана пользователем nikemat, 24 янв 2013.

  1. nikemat

    nikemat Guest

    Здравствуйте. Нужен скрипт выбора городов в лайтбокс-окне, по ajax. Примерно как на мамбе. Нигде не попадался?
     
  2. gromdron

    gromdron Активный пользователь

    С нами с:
    10 авг 2012
    Сообщения:
    14
    Симпатии:
    0
    А в чем храниться список городов ? Или вы хотите получать его с какого-то сайта ?
     
  3. nikemat

    nikemat Guest

    в mysql лучше наверное. собственно, списки городов я нашёл и в модальное окно загнал. теперь вопрос- как сохранить цепочку выбранного в базу..
     
  4. nikemat

    nikemat Guest

    сообщение без ответа осталось((
    и еще вопрос по этому же скрипту, но в другом проекте- там без городов. только страны и регионы.
    ajax подключен, есть базы region и country. у всех перекрестные id.
    при выборе страны сбрасывает на первую позицию. в чем причина?((
     
  5. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    ну наверное в ошибке в скрипте.
     
  6. nikemat

    nikemat Guest

    формат базы country: назв. полей: id, country (пример данных: 7, Россия)
    формат базы region: назв. полей: id, country,region (пример данных: 77,7,Москва)
    поля: <select name=country onchange=getList('country','region')></select>
    <select name=region onchange=getList('region','region')></select>
    (* скрипт и библиотека jq подключены в HEAD, и в onload по умолчанию прописана функция getList('country'), чтобы по умолчанию список загружал)
    скрипт ajax.js:
    Код (Text):
    1.  
    2.             function getList(type, obj) {
    3.                 $.post('city.php', {type: type, ids: $('#'+obj).val()}, onAjaxSuccess);
    4.                
    5.                 function onAjaxSuccess(data) {
    6.                         out = document.getElementById(type);
    7.                        
    8.                         for (var i = out.length - 1; i >= 0; i--) {
    9.                             out.options[i] = null;
    10.                         }
    11.                         eval(data);
    12.                 }
    13.             }
    скрипт city.php
    Код (Text):
    1.  
    2. $id   = (int)$_POST['ids']; // id объекта (страна или регион)
    3. $type = $_POST['type']; // тип списка, который нужно получить (города или регионы)
    4.  
    5.  
    6. if ($type == 'region') {
    7.     // выбираем регионы в данной стране
    8.     $res = mysql_query('SELECT * FROM region');
    9.     if (!empty($res)) {
    10.         echo "out.options[out.options.length] = new Option('Регион','none');\n";
    11.         while ($region = mysql_fetch_array($res)) {
    12.        
    13.             echo "out.options[out.options.length] = new Option('".$region['region']."','".$region['country']."');\n";
    14.         }
    15.     }
    16.     else {
    17.         echo "out.options[out.options.length] = new Option('нет регионов','none');\n";
    18.     }
    19. }
    20.  
    21. if ($type == 'country') {
    22.     // выбираем регионы в данной стране
    23.     $res = mysql_query('SELECT * FROM country');
    24.     if (!empty($res)) {
    25.         echo "out.options[out.options.length] = new Option('Страна','none');\n";
    26.         while ($country = mysql_fetch_array($res)) {
    27.        
    28.             echo "out.options[out.options.length] = new Option('".$country['country']."','".$country['id']."');\n";
    29.    
    30.         }
    31.     }
    32.     else {
    33.         echo "out.options[out.options.length] = new Option('нет стран','none');\n";
    34.     }
    35. }
     
  7. siiXth

    siiXth Активный пользователь

    С нами с:
    14 мар 2010
    Сообщения:
    1.447
    Симпатии:
    1
    Код (Text):
    1. out = document.getElementById(type);
    проверьте присутствие id
    думаю надо так
    Код (Text):
    1. <select name="country" id="country" onchange=getList('country','region')></select>
    2. <select name="region" id="region" onchange=getList('region','region')></select>
     
  8. nikemat

    nikemat Guest

    добавил id- то же самое((
     
  9. siiXth

    siiXth Активный пользователь

    С нами с:
    14 мар 2010
    Сообщения:
    1.447
    Симпатии:
    1
    короче тут везде говнокод
    я не ощущаю WHERE

    сбрасывает на первую потому что он обновляется чего не должен делать, потому логично что onchange левый
    Код (Text):
    1. <select name="country" id="country" onchange=getList('region','country')></select>
    2. <select name="region" id="region" onchange=getList('city','region')></select>
    3. <select name="city" id="city"></select>
    поменял onchange
    и запрос должен быть таким видимо
    Код (Text):
    1. if ($type == 'region') {
    2.    // выбираем регионы в данной стране
    3.    $res = mysql_query('SELECT * FROM region WHERE `country`='.$id);
     
  10. nikemat

    nikemat Guest

    брал отсюда: http://ekimoff.ru/225/
    этот скрипт везде рекомендуют))
     
  11. siiXth

    siiXth Активный пользователь

    С нами с:
    14 мар 2010
    Сообщения:
    1.447
    Симпатии:
    1
    Код (Text):
    1. sleep(1); // спешить нам некуда
    ахуеть
    ну ладно, оправдались =D

    короче, трабл в том что первый список обновляется, а всё остальное ок ?
     
  12. nikemat

    nikemat Guest

    пока да, второго списка ещё не видел)
     
  13. siiXth

    siiXth Активный пользователь

    С нами с:
    14 мар 2010
    Сообщения:
    1.447
    Симпатии:
    1
    тоесть ты пытаешься запустить всё это дело с одним списком ?
     
  14. nikemat

    nikemat Guest

    нет, должен по умолчанию быть загружен список со странами. в зависимости от выбранной страны должен загружаться список регионов во втором списке
     
  15. MaXyC_Web_Studio

    MaXyC_Web_Studio Активный пользователь

    С нами с:
    31 дек 2006
    Сообщения:
    678
    Симпатии:
    3
    Адрес:
    Новоуральск
    помоему легче с нуля самому написать