Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.12.2015, 15:19   #31
Дамир193
Пользователь
 
Регистрация: 23.11.2015
Сообщений: 19
По умолчанию

Вот код, как я сделал, может тут что не правильно:
PHP код:
            <script>
// формируем аналогичный массив городов для Javascript, формат массива: key => url
var cities = [];
var vr = [];
<?php
foreach($cities as $key => $city) {
    echo 
"cities[" $key "] = \"" $city['url'] . "\";\n";
}

foreach(
$vr as $key => $vak) {
    echo 
"vr[" $key "] = \"" $vak['url'] . "\";\n";
}
?>
PHP код:
// устанавливаем значение текущего города в action формы
document.getElementById('mainform').action = '/'+cities[<?=$t_of_gorod?>];
// устанавливаем значение текущей вакансии или резюме в action формы
document.getElementById('mainform').action = '/'+vr[<?=$t_of_v?>];

// функция отслеживает изменение города в списке формы
// и выполняет замену URL обработчика формы в соответствии с этими изменениями
function changeCity() {
    // получаем индекс выбранного элемента в списке
    var gorod_index = document.getElementById('t_of_gorod').selectedIndex;
    var vak_index = document.getElementById('t_of_v').selectedIndex;
    // получаем значение value для выбранного элемента в списке
    var gorod_option_value = document.getElementsByTagName("option")[gorod_index].value * 1;
    var vak_option_value = document.getElementsByTagName("option")[vak_index].value * 1;
    
    
    // устанавливаем новое значение URL города в action формы
    document.getElementById('mainform').action = '/'+cities[gorod_option_value]+'/'+vr[vak_option_value];
}
</script>
Дамир193 вне форума Ответить с цитированием
Старый 09.12.2015, 15:29   #32
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Цитата:
Сообщение от Дамир193 Посмотреть сообщение
Если зайти на сайт и просто нажать на кнопку поиска с дефолтными значениями селектов, то не формирует url, как будто дефолтные значения не заданы, я ведь правильно понимаю, что вот так задаются деф. значения?
PHP код:
$t_of_gorod = (isset($_GET['t_of_gorod'])) ? (int)$_GET['t_of_gorod'] : 0;
$t_of_v = (isset($_GET['t_of_v'])) ? (int)$_GET['t_of_v'] : 1
Если причину знаете подскажите пожалуйста
Ну вот же ты формируешь из них action для формы
Цитата:
Сообщение от Дамир193 Посмотреть сообщение
- Формируем из них URL по принципу /город/тип(вакансия|резюме):
PHP код:
<form action="<?=$cities[$t_of_gorod]['url']; ?>/<?=$vr[$t_of_v]['url']; ?>"
Здесь не работает? Не подставляет значения? Я ж спрашивал раньше...
А если вот это из кода убрать:
Цитата:
Сообщение от Дамир193 Посмотреть сообщение
// устанавливаем значение текущего города в action формы
document.getElementById('mainform') .action = '/'+cities[<?=$t_of_gorod; ?>];
// устанавливаем значение текущей вакансии или резюме в action формы
document.getElementById('mainform') .action = '/'+vr[<?=$t_of_v; ?>];
?

Последний раз редактировалось Andkorol; 09.12.2015 в 15:33.
Andkorol вне форума Ответить с цитированием
Старый 10.12.2015, 07:21   #33
Дамир193
Пользователь
 
Регистрация: 23.11.2015
Сообщений: 19
По умолчанию

Andkorol, код убрал, дефолтное значение работает только если ничего не выбирать, то есть по умолчанию стоит moskva/vakancy, при этом url формируется, если выбрать moskva/resume, то все равно передает moskva/vakancy.
C остальными городами тоже самое, ко всем подставляет только vacancy
Дамир193 вне форума Ответить с цитированием
Старый 10.12.2015, 10:57   #34
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Значит, ты опять где-то натупил

Вот например, здесь для списка не указан ни вызов функции по событию onchange, ни атрибут id, даже name нет, ничего вообще не указано:
Цитата:
Сообщение от Дамир193 Посмотреть сообщение
Получаем значения для вакансий или или резюме:
PHP код:
<select class="vybor" >
    <?php 
        
foreach ($vr as $key => $vak) {
        
$selected2 = ($key2 == $t_of_v) ? 'selected="selected"' '';
        echo 
'<option value="' $key2 '" ' $selected2 '>' $vak['title'] . '</option>';
        }
    
?>
</select>
Как это может работать?
У тебя же буквально в том же сообщении, чуть ниже – нормальный рабочий список для выбора городов, со всеми нужными атрибутами:
Цитата:
Сообщение от Дамир193 Посмотреть сообщение
Получаем значения для города:
PHP код:
<select name="t_of_gorod" id="t_of_gorod" onchange="changeCity();">
    <?php 
        
foreach ($cities as $key => $city) {
        
$selected = ($key == $t_of_gorod) ? 'selected="selected"' '';
        echo 
'<option value="' $key '" ' $selected '>' $city['title'] . '</option>';
        }
    
?>
</select>
Не осилил скопипастить всё, как нужно?
Сам же бездумно лепишь всякую фигню в свой код – а потом «не работает»...
Andkorol вне форума Ответить с цитированием
Старый 10.12.2015, 12:41   #35
Дамир193
Пользователь
 
Регистрация: 23.11.2015
Сообщений: 19
По умолчанию

Andkorol, если я делаю так:
PHP код:
<select class="vybor" id="t_of_v" id="t_of_v" onchange="changeCity();  >
                            <?php 
                            
foreach ($vr as $key => $vak) {
                            
$selected2 = ($key == $t_of_v) ? 'selected="selected"' '';
                            echo 
'<option value="' $key '" ' $selected2 '>' $vak['title'] . '</option>';
                            }
                            
?>
                        </select>
То при нажатии на select выпадает только один option - резюме. и не работает.
Разве можно функцию вызывать дважды одну и ту же?
Дамир193 вне форума Ответить с цитированием
Старый 10.12.2015, 13:52   #36
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Цитата:
Сообщение от Дамир193 Посмотреть сообщение
Разве можно функцию вызывать дважды одну и ту же?
Ну #$*&ля, здрасьтеприехали...
А нафига, по-твоему, функции вообще нужны?!?

Парень, ты меня своим тупняком уже реально очень утомил.
Задачу на 15-20 минут ты растянул на две с половиной недели!!!

Вот в этом моём сообщении есть пример того, как можно создать отдельный упрощённый вариант кода (массив, форма, select, javascript для обработки select-a).
Так вот возьми этот вариант, добавь в него ещё один массив (вакансии|резюме), добавь в форму ещё один select, скопипасти и настрой javascript для второго select-a – и заставь всё это работать как надо.
И вот когда этот упрощённый вариант будет у тебя правильно работать – тогда перенеси его в свой код.

Это реально задача на 5-10 минут, даже для совсем новичка в программировании.
Или включай уже мозги и разбирайся с этой простейшей задачей – или бросай это дело нафиг, ибо толку с тебя не будет.
Всё, моя помощь для тебя на этом закончена.
Точка.
Andkorol вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите разобраться МаксMorfey Общие вопросы по Java, Java SE, Kotlin 1 21.12.2009 13:15
Помогите разобраться pashka Общие вопросы C/C++ 9 31.05.2009 00:37
Помогите разобраться в С++ saleens7 Общие вопросы C/C++ 5 09.01.2009 17:08
Помогите разобраться! Кот Microsoft Office Excel 3 14.08.2007 19:48