Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/19: Рейтинг темы: голосов - 19, средняя оценка - 4.63
0 / 0 / 0
Регистрация: 17.01.2011
Сообщений: 10

OnClick на Option в Selecte

17.01.2011, 23:54. Показов 4157. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Еще мало изучаю JS, но срочно нужно решить одну проблемку... Непредлогать аякс, нужно доделать так как уже есть... суть такова, есть список стран который подгружается из базы в SELECT и есть массив с городами(массив вида array[id_страны][id_города])

И так на выводе мы емеем только SELECT с списком стран. Суть задачи, нужно чтобы по Клику на название страны, появлялся SELECT со списком городов с соответствующим ID страны...

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<?php
require_once "MysCon.php";//конект с БД
 
$out .= "<select name='countries'>";
 
$query_countries = mysql_query("SELECT * FROM `countries`");
while($countries = mysql_fetch_object($query_countries))
{
$out .= "<option value='$countries->id'>".$countries->name."</option>";
}
$out .= "</select></form>";
 
//генерация SELECTa из БД
 
$query_city = mysql_query("SELECT * FROM `cities`");
$out .= "
<script language='javascript'>
var mas=[];
";
while($city = mysql_fetch_object($query_city))
{
$out .= "mas[$city->country][$city->id]='$city->name';";
//генерация массива всех городов
}
$out .= "</script>";
 
 
echo $out;
?>
Плиз помогите написать обработчик, который определит какая страна за'OnClick'чина... Очень благодарен, если кто поможет!!!


Цитата Сообщение от Dolper Посмотреть сообщение
если поможет структура БД:
Cities: id | Country | Name,
Countries: id | Name
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
17.01.2011, 23:54
Ответы с готовыми решениями:

onclick в <option>
Здраствуйте Проблема такая. Пишу ну к примеру &lt;option onclick='location.href=&quot;/advert/?id=2&amp;search=легковые_автомобили;&quot;'...

Динамическое создание Option с обработчиком onclick()
В цикле создаю option: var sel = document.getElementById('opt'); for (i=0; i&lt;c.length; i++){ sel.options = new Option(c.name,...

Поиск в selecte - русские буквы
В IE есть встроенный поиск по певой букве в поле select. Но вот с русскими буквами че-то не хочет работать. Может кто подскажет, как...

8
71 / 71 / 5
Регистрация: 02.11.2009
Сообщений: 348
17.01.2011, 23:56
1. Нужно писать не OnClick на Option а onchange на select
2. Вы используете фреймворк?
1
71 / 71 / 5
Регистрация: 02.11.2009
Сообщений: 348
17.01.2011, 23:58
По 2-му увидел. Просто сразу не понял.
1
0 / 0 / 0
Регистрация: 17.01.2011
Сообщений: 10
17.01.2011, 23:58  [ТС]
нет неиспользую, можно поподробнее? все что я ипользую приведено в коде!
0
0 / 0 / 0
Регистрация: 17.01.2011
Сообщений: 10
17.01.2011, 23:59  [ТС]
просто это единственный вариант до которого я сам додумался, а разбираться в примерах на просторах интернета сейчас нет времени((((
0
71 / 71 / 5
Регистрация: 02.11.2009
Сообщений: 348
18.01.2011, 00:24
Пока лежал сайт - набросал:
HTML5
1
2
3
4
5
6
<select name='countries' id='countries' onchange='load_city()'>
    <option value='1'>Россия</option>
    <option value='2'>Китай</option>
</select>
<select name='city' id='city'>
</select>
Это списки
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
var mas = Array();
 
mas[1] = Array();
mas[1][1]   =   'Москва';
mas[1][2]   =   'Самара';
 
mas[2] = Array();
mas[2][1]   =   'Пекин';
 
function load_city()
{
    
    
    
    CALL    =   document.getElementById('countries');
    if(!CALL)return;
    TARGET  =   document.getElementById('city');
    if(!TARGET)return;
    
    country =   CALL.value;
    city    =   TARGET.value;
    
    clearSelect(TARGET);
    
    DATA    =   mas[country];   
    
    
    for(i in DATA)
    {
        opt     =   document.createElement("option");
        opt.setAttribute("value", i);
        TARGET.appendChild(opt);
        text    =   document.createTextNode(DATA[i]);   
        opt.appendChild(text);
        
    }   
    
    
}
function clearSelect(oListbox)
{
  for (var i=oListbox.options.length-1; i >= 0; i--)
  {
      oListbox.remove(i);
  }
}
Это скрипты.
2
0 / 0 / 0
Регистрация: 17.01.2011
Сообщений: 10
18.01.2011, 00:46  [ТС]
Спасибо большое, неособо еще разобрался, но главное РАБОТАЕТ!!!
0
71 / 71 / 5
Регистрация: 02.11.2009
Сообщений: 348
18.01.2011, 00:49
Если появятся вопросы - пишите. отвечу
0
TrustX
10.03.2011, 12:46
Здравствуйте. А можно сделать, чтобы при выборе города создавался объект
HTML5
1
2
3
 <div>
    <img><p></p>
</div>
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
10.03.2011, 12:46
Помогаю со студенческими работами здесь

разворачивания option не через option
как это сделать подскажите может есть какойта тип но в шпаргалке у себя не чего не нашол

Выбрать option в select при выборе другого option в другом select
Всем добрый привет! Подскажите, пожалуйста, как реализовать вот какую штуку: необходимо, чтобы при выборе option с value=0 в select с...

Можно ли дать пользователю выбрать опцию в SELECTe с помощью клавиатуры?
имеется: - браузер IE5 - ОС Windows NT 4 (или Windows 2000 Pro) на странице HTML есть &lt;select&gt; &lt;option&gt;текст...

Выполнение определенного действия по 'клику' на элемент '<option></option>'
В чем суть проблемы. Нужно чтобы по клику на '&lt;option&gt;&lt;/option&gt;' у нас работал определенный код. Но он не работает. Вот код: ...

При выборе option'a в select, option не отображается
Всем привет, помогите сделать так, чтобы при выборе option'a в select'e, этот option не отображался. Сейчас для того, чтобы выводить...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru