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

Как добавить ссылку в последний select

10.08.2015, 17:34. Показов 791. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет. помогите пожалуйста:

есть код связанных select списков

вначале выбираем страну, потом регион, потом город.

в таблице с городами 3 поля: city_id, name, link.

как сделать, чтобы после выбора в последнем селекте (города) пользователь переходил по ссылке, которая в поле link?

код

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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
$(document).ready(function () {
    $('#country_id').change(function () {
        var country_id = $(this).val();
        if (country_id == '0') {
            $('#region_id').html('<option>- выберите регион -</option>');
            $('#region_id').attr('disabled', true);
            $('#city_id').html('<option>- выберите город -</option>');
            $('#city_id').attr('disabled', true);
            return(false);
        }
        $('#region_id').attr('disabled', true);
        $('#region_id').html('<option>загрузка...</option>');
        
        var url = 'get_regions.php';
        
        $.get(
            url,
            "country_id=" + country_id,
            function (result) {
                if (result.type == 'error') {
                    alert('error');
                    return(false);
                }
                else {
                    var options = ''; 
                    
                    $(result.regions).each(function() {
                        options += '<option value="' + $(this).attr('region_id') + '">' + $(this).attr('name') + '</option>';
                    });
                    
                    $('#region_id').html('<option value="0">- выберите регион -</option>'+options);
                    $('#region_id').attr('disabled', false);
                    $('#city_id').html('<option>- выберите город -</option>');
                    $('#city_id').attr('disabled', true);   
                            
                }
            },
            "json"
        );
    });
 
$('#region_id').change(function () {
        var region_id = $(this).val(); //$('#region_id :selected').val();
        //alert (region_id);
        if (region_id == '0') {
            $('#city_id').html('<option>- выберите город -</option>');
            $('#city_id').attr('disabled', true);
            return(false);
        }
        $('#city_id').attr('disabled', true);
        $('#city_id').html('<option>загрузка...</option>');
        
        var url = 'get_city.php';
        
        $.get(
            url,
            "region_id=" + region_id,
            
            function (result) {
                if (result.type == 'error') {
                    alert('error');
                    return(false);
                }
                else {
                    var options = ''; 
                    $(result.citys).each(function() {
                        options += '<option value="' + $(this).attr('city_id') + '">' + $(this).attr('name') + '</option>'; 
                        
                    });
                    $('#city_id').html('<option value="0">- выберите город -</option>'+options);       
                    $('#city_id').attr('disabled', false);
                    
$('#city_id').change(function(){
    var value = $('#city_id :selected').text();
    var city_id = $('#city_id :selected').val(); 
    if (city_id !== '0') {
    $('#selectBoxInfo').html('Выбран '+ value).
    fadeIn(1000,function(){
    $(this).fadeOut(2000);
    }); 
 } 
});                 
    }
            },
            "json" 
        );
    }); 
});
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
<?php
include_once 'connect.php';
$region_id = @intval($_GET['region_id']);
//$region_id = 4312;
 
$regs=mysql_query("SELECT name, city_id, link FROM city WHERE region_id=$region_id"); 
 
if ($regs) {
    $num = mysql_num_rows($regs);      
    $i = 0;
    while ($i < $num) {
       $citys[$i] = mysql_fetch_assoc($regs);   
       $i++;
    }     
    $result = array('citys'=>$citys);  
}
else {
    $result = array('type'=>'error');
}
/**
 * if ($regs) {
 * $num = mysql_num_rows($regs); 
 * $citys = array();
 
 * for ($i=0; $i<$num; $i++) 
 * $city[$i] = mysql_fetch_row($regs);
 
 * $i=0;
 *  foreach ($city as $r) {
 *      $citys[] = array('id'=>$i, 'title'=>$r);
 *      $i++;
 *  } 
 * $result = array('type'=>'success', 'citys'=>$citys);  
 * }
 * else {
 *  $result = array('type'=>'error');
 * }
 */
//echo "<pre>";
//print_r ($result);
//echo "</pre>";
print json_encode($result); 
//print var_dump($result)
?>
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
10.08.2015, 17:34
Ответы с готовыми решениями:

Как добавить ссылку ?
как добавить ссылку в &lt;select&gt;/ &lt;option&gt; ? &lt;select&gt; &lt;option&gt;123&lt;/option&gt; &lt;option&gt;123&lt;/option&gt; ...

Как добавить в StatusBar ссылку?
Как добавить в StatusBar ссылку? Так чтобы она выделялась как гипперссылка(подчеркивание, цвет) при наведении мышки на нее и открывала...

Как добавить параметры в ссылку?
Как добавить параметры (&amp;a=&lt;%response.write AA%&gt;) в ссылку при вызове script:history.back(1)?

6
не Администратор ^_^
 Аватар для Unick
988 / 223 / 23
Регистрация: 03.05.2009
Сообщений: 1,493
Записей в блоге: 1
10.08.2015, 22:18
передаем с сервера link
потом, там где перебираешь result.citys, так же вбей куда-ниб этот link, например data-link='<%=link%>'
и при выборе города делаешь windows.locatioin.href = link
0
0 / 0 / 0
Регистрация: 26.06.2015
Сообщений: 66
10.08.2015, 22:55  [ТС]
Unick, додумалась только до вбивания link(

помогите пожалуйста с реализацией. вот хтмл код формы:

HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<form action="#" method="get">
            Страна:<br />
            <select name="country_id" id="country_id" class="StyleSelectBox">
                <option value="0">- выберите страну -</option>
                <option value="3159">Россия</option>
                <option value="9908">Украина</option>
                <option value="248">Беларусь</option>
            </select></td><td>
            Регион:<br />
            <select name="region_id" id="region_id" disabled="disabled" class="StyleSelectBox">
                <option value="0">- выберите регион -</option>
            </select></td><td>
            Город:<br />
            <select name="city_id" id="city_id" disabled="disabled" class="StyleSelectBox">
                <option value="0">- выберите город -</option>
            </select>
        </form>
0
супермизантроп
Эксперт JS
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,629
11.08.2015, 00:19
HTML5
1
2
3
4
<select onchange="if (this.selectedIndex) location.href = this.value">
<option>выберите город</option>
<option value="http://google.com">город Гугль</option>
<option value="http://yandex.ru">деревня Яндекс</option>
0
не Администратор ^_^
 Аватар для Unick
988 / 223 / 23
Регистрация: 03.05.2009
Сообщений: 1,493
Записей в блоге: 1
11.08.2015, 00:20
masonok,
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// добавляем значит data-link
options += '<option value="' + $(this).attr('city_id') + '" data-link="'+$(this).attr('link')+'">' + $(this).attr('name') + '</option>'; 
 
/// бла бла бла код
 
$('#city_id').change(function(){
 
    var $el = $('#city_id :selected');
 
    var value = $el.text();
    var city_id = $el.val(); 
    if (city_id !== '0') {
 
      var link = $el.data('link')
      // ну и тут например можно перейти по ссылке
      windows.location.href = link;
как говориться, говнокодом больше, говнокодом меньше
на будущее почитай хотябы о шаблонизаторах
0
супермизантроп
Эксперт JS
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,629
11.08.2015, 00:22
windows -- буковка s лишняя
0
не Администратор ^_^
 Аватар для Unick
988 / 223 / 23
Регистрация: 03.05.2009
Сообщений: 1,493
Записей в блоге: 1
11.08.2015, 00:36
kalabuni, да, ты прав... отнял возможность подебажить код у человека)
интересно, как я так умудрился... дважды)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
11.08.2015, 00:36
Помогаю со студенческими работами здесь

Как в div добавить ссылку
Есть структура HTML &lt;div class=&quot;pp_details&quot; &gt; &lt;p&gt;Содержание&lt;/p&gt; &lt;/div&gt; Как в этот div, в самое начало добавить ссылку с...

Как добавить option в select
HTML: &lt;select name=&quot;lang&quot; class=&quot;form-item&quot; onchange=&quot;pokes()&quot;&gt; &lt;option id=&quot;1&quot;&gt;Добавить...

Как добавить ссылку на веб страницу
Как сделать кнопку что бы после её нажатия открывался сайт. Нубский вопрос :)

Как добавить ссылку в админское меню?
Сделали новую страницу. Теперь бы добавить ссылку на неё в админскую панель. Например, после пункта &quot;Инфоблоки&quot; (см. рис.).

Как в аргументы добавить переменную (ссылку)?
Подскажите пожалуйста как в аргументы добавлять ссылку. То есть: ссылку берём из адресной строки, из +url+ и вставляем в аргументы. Но как...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru