Как связать два списка на Javascript?
Здравствуйте уважаемые форумчане. Меня интересует как можно связать два списка (select и их option) из базы данных на Javascript?
--------------- Вот приблизительные данные в БД с именем bd_primer: Первая таблица country 1. ID (1, 2, 3, ...) INT 2. name (Россия, Украина, Эстония, ...) VARCHAR 3. url (rossia, shvecia, polsha, ....) VARCHAR Вторая таблица city 1. ID (1, 2, 3, 4, 5, 6, ...) INT 2. id_country (1, 1, 2, 2, 3, 3, ...) INT 3. name (Санкт-Петербург, Москва, Киев, Харьков,Таллин, Нарва, ...) VARCHAR 4. url (spb, moscow, kiev, kharkov, tallinn, narva, ....) VARCHAR --------------- В файл test.php помещаем select (ы): $id_city = "ID взятый из таблицы country" $name_country = "Имя взятое из таблицы country" $id_country = "ID взятый из таблицы city" $name_city = "Имя взятое из таблицы city" <select name="country"> <option value="id_country">name_country</option> <option value="id_country">name_country</option> <option value="id_country">name_country</option> <select> <select name="city"> <option value="id_city">name_city</option> <option value="id_city">name_city</option> <option value="id_city">name_city</option> <select> Задача следующая, нужно написать функцию на javascript, которая свяжет select country с select city и отобразить ее в трех файлах, т.е. функцию сохраняем в файле select2.js, подключаем эту функцию в файле header.php, а вывод результата показываем в файле test.php Скрипт должен быть быстрым и легким, выводить кучу selectov не лучший вариант. К сожалению я не нашел нужные примеры в интернете, и был вынужден обратиться напрямую к форумчанам. Были похожие примеры, но с более сложными и углубленными задачами, но меня интересует именно этот конкретный случай. П.с.: за самый шустрый, безопасный и красивый скрипт, выполненный в соответствии с заданием, подарю 200 руб. на Webmoney. Естественно, если он у меня заработает :) |
Цитата:
Цитата:
|
Цитата:
Что конкретно Вам было не понятно из того, что я написал? Я могу изложить свои бессвязные мысли в другой форме. |
Вариант ... если у кого будет желание может распихать по файлам
<!DOCTYPE HTML> <html> <head> <title></title> <meta charset="windows-1251" /> <script> window.onload = function () { var country = { 'ID': [1, 2, 3], 'name': ['Россия', 'Украина', 'Эстония'], 'url': ['rossia', 'shvecia', 'polsha'] }, city = { 'ID': [1, 2, 3, 4, 5, 6], 'id_country': [1, 1, 2, 2, 3, 3], 'name': ['Санкт-Петербург', 'Москва', 'Киев', 'Харьков', 'Таллин', 'Нарва'], 'url': ['spb', 'moscow', 'kiev', 'kharkov', 'tallinn', 'narva'] } function set_select(name, arr_text, arr_val) { var select = document.getElementsByName(name)[0]; select.options.length = 0; for (var k = 0; k < arr_val.length; k++) { select.options[k] = new Option(arr_text[k], arr_val[k]); } } var select = document.getElementsByName('country')[0]; function change_select() { var j = select.selectedIndex || 0, name = [], url = []; j = country['ID'][j] for (var i = 0; i < city['id_country'].length; i++) { if (city['id_country'][i] == j) { name.push(city['name'][i]); url.push(city['url'][i]); } } set_select('city', name, url) } set_select('country', country['name'], country['url']) change_select() select.addEventListener('change', change_select); } </script> </head> <body> <select name="country"> </select> <select name="city"> </select> </body> </html> |
Цитата:
|
'id_country': [1, 1, 2, 2, 3, 3] Только что пытался связать вывод данных с базы и столкнулся с ошибкой. У Вас вывод id_country идет по порядку 1, 1, 2, 2, 3, 3 и т.д., а нужно реализовать вывод разных цифр, таких как например: 1, 1, 4, 5, 6, 6 и т.д. Суть в том, что id_country = ID (в таблице country), т.е. две таблицы в базе данных связаны между собой этим (ID) идентификатором. Сможете помочь с этим вопросом? |
Цитата:
вы наверно спутали city и country |
Aggao,
city = { 07 'ID': [1, 2, 3, 4, 5, 6], это id я совсем неиспользую и непонимаю зачем оно нужно. выше в коде кое что поправил - смотрите код по новой и если несработает то что вам нужно -- нерабочий код разместите тут |
Цитата:
|
Часовой пояс GMT +3, время: 23:06. |