За последние 24 часа нас посетили 47734 программиста и 1729 роботов. Сейчас ищут 608 программистов ...

Не могу создать связанные списки! Help me!

Тема в разделе "PHP для новичков", создана пользователем LeXXXX35, 2 сен 2011.

  1. LeXXXX35

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

    С нами с:
    30 сен 2010
    Сообщения:
    41
    Симпатии:
    0
    Здравствуйте! Понимаю что данный вопрос уже был на форуме, но все же. Никак не получается создать связанные списки Страна -> Регион -> Город. Ну или хотя бы Регион город.
    Уже пол интернета перерыл, никак не хочет подгружаться.

    Есть БД, с таблицами country, region, city:
    [sql]
    CREATE TABLE `city` (
    `city_id` int(11) unsigned NOT NULL auto_increment,
    `country_id` int(11) unsigned NOT NULL default '0',
    `region_id` int(10) unsigned NOT NULL default '0',
    `name` varchar(128) NOT NULL default '',
    PRIMARY KEY (`city_id`),
    KEY `country_id` (`country_id`),
    KEY `region_id` (`region_id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;



    CREATE TABLE `region` (
    `region_id` int(10) unsigned NOT NULL auto_increment,
    `country_id` int(10) unsigned NOT NULL default '0',
    `city_id` int(10) unsigned NOT NULL default '0',
    `name` varchar(64) NOT NULL default '',
    PRIMARY KEY (`region_id`),
    KEY `country_id` (`country_id`),
    KEY `city_id` (`city_id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;



    CREATE TABLE `country` (
    `country_id` int(11) unsigned NOT NULL auto_increment,
    `city_id` int(11) NOT NULL default '0',
    `name` varchar(128) NOT NULL default '',
    PRIMARY KEY (`country_id`),
    KEY `city_id` (`city_id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
    [/sql]

    Так вот, в профиле пользователя есть форма, приведу часть кода:

    PHP:
    1.  
    2. <?php
    3. echo'        <tr>
    4.         <td class="ss">Страна:</td>
    5.         <td class="ss"><select name="country" id="country"></select></td>';
    6.  
    7.  
    8. $z_country=mysql_query("SELECT * FROM country ");
    9.         while ($country=mysql_fetch_array($z_country))
    10.         {
    11.         echo '<option value="'.$country['country_id'].'">'.$country['name'].'</option>';
    12.         }
    13.  
    14.  
    15. echo'   </tr>
    16.        <tr>
    17.         <td class="ss">Регион:</td>
    18.         <td class="ss"><select name="region" id="region"></select></td>
    19.     </tr>
    20.     <tr>
    21.         <td class="cc">Город:</td>
    22.         <td class="cc"><select id="city" name="city"></select></td>
    23.     </tr>';
    24. ?>
    25.  
    Так вот, пробовал несколько методов, ничего не получается. Подскажите пожалуйста какие методы лучше применить? Уже неделю бьюсь. Коды опробованных мною методов не выкладываю, т.к. их слишком много, да и потер со психу уже больше половины (((
     
  2. karakh

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

    С нами с:
    11 дек 2007
    Сообщения:
    1.344
    Симпатии:
    0
    имхо, лучше всего применить ajax. При изменении селекта посылается запрос скрипту, тот запрашивает в бд список значений для следующего селекта, возвращает json который парсится в массив options и подставляется в нужный селект.
     
  3. LeXXXX35

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

    С нами с:
    30 сен 2010
    Сообщения:
    41
    Симпатии:
    0
    Ну естественно я и пробовал AJAX. Все равно ничего не получилось, в javascript не соображаю почти. Может кто помочь? Может есть у кого код готовый?
     
  4. karakh

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

    С нами с:
    11 дек 2007
    Сообщения:
    1.344
    Симпатии:
    0
  5. LeXXXX35

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

    С нами с:
    30 сен 2010
    Сообщения:
    41
    Симпатии:
    0
    Спасибо, разобрался. Тема закрыта.