Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
1 / 1 / 0
Регистрация: 18.11.2015
Сообщений: 53

Правильный вывод формы поиска на экран

22.11.2015, 20:11. Показов 1761. Ответов 30
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток!
Повторюсь еще раз: в анкете пользователя есть три переменные $metrofirst, $metrosecond, $metrothird
Мне удалось:
  1. Создать поле выбора значения переменной из выпадающего списка
  2. Сделать грамотный вывод переменной на странице анкеты
  3. Написать поисковый запрос для трех переменных
  4. Сделать форму поиска в виде выбора значения выпадающего меню
Теперь стоит задача объединить в одну поисковую форму поиск по значениям трех переменных. Что имею?

Поисковых запрос для трех переменных:
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
if ($_POST['metrofirst']) {
        $metrofirst = (int)$_POST['metrofirst'];
        $metrofirst = (string)$_POST['metrofirst'];
        $meta_query[] = array(
            'key' => 'metrofirst',
            'value' => $metrofirst,
            'compare' => '='
        );
    }   
    
    if ($_POST['metrosecond']) {
        $metrosecond = (int)$_POST['metrosecond'];
        $metrosecond = (string)$_POST['metrosecond'];
        $meta_query[] = array(
            'key' => 'metrosecond',
            'value' => $metrosecond,
            'compare' => '='
        );
    }   
    
    if ($_POST['metrothird']) {
        $metrothird = (int)$_POST['metrothird'];
        $metrothird = (string)$_POST['metrothird'];
        $meta_query[] = array(
            'key' => 'metrothird',
            'value' => $metrothird,
            'compare' => '='
        );
    }
РАБОЧАЯ! Форма поиска только для переменной $metrofirst
PHP
1
2
3
4
5
6
7
8
9
10
11
                    <div class="form-label">
                        <label for="metrofirst"><?php echo "Поиск по метро (beta):"; ?></label>
                    </div>
                    <div class="form-input">
                        <select name="metrofirst" id="metrofirst" class="metrofirst">
                            <option value=""><?php echo "Выберите станцию метро"; ?></option>
                            <?php foreach($metro_a as $key=>$m) { ?>
                                <option value="<?php echo $key; ?>"<?php if($metrofirst == $key) { echo ' selected="selected"'; } ?>><?php echo $m; ?></option>
                            <?php } ?>
                        </select>
                    </div>
Мне нужно в форму поиска объединить все три переменные, чтобы не делать три формы поиска.
Искал вариант решения здесь с помощью if else но это привело страницу к падению. В PHP очень не силен, помогите пожалуйста дописать правильную форму поиска!
PHP
1
<?php if($metrofirst == $key) { echo ' selected="selected"'; } ?>
Добавлено через 1 час 57 минут
HTML5
1
<select name="metrofirst"
Как можно в селекторе name задать несколько имен? ):

Добавлено через 4 часа 10 минут
Неужели никто не знает? ):
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
22.11.2015, 20:11
Ответы с готовыми решениями:

Не правильный вывод на экран.
Здравствуйте. Только начинаю изучать C++ Есть такой код #include &quot;stdafx.h&quot; #include &quot;conio.h&quot; #include &lt;string&gt; ...

Правильный вывод сообщения на экран
Как правильно с помощью QMessageBox вывести окно с текстом на экран, по аналогии с MessageBox. P.S...

Суммирование элементов массива и правильный вывод суммы на экран
Программа определяет, сколько экспертов сказали, что товар i лучше товара j. По всем товарам. Такая ситуация, что никак не могу реализовать...

30
Эксперт PHP
3900 / 3238 / 1353
Регистрация: 01.08.2012
Сообщений: 10,914
22.11.2015, 20:17
Цитата Сообщение от karkomak Посмотреть сообщение
Как можно в селекторе name задать несколько имен? ):
Ссылка.
0
1 / 1 / 0
Регистрация: 18.11.2015
Сообщений: 53
22.11.2015, 20:19  [ТС]
Не решит мою проблему, пробовал и так ):
Но спасибо!
0
576 / 514 / 253
Регистрация: 26.09.2010
Сообщений: 2,603
22.11.2015, 20:21
Цитата Сообщение от karkomak Посмотреть сообщение
Как можно в селекторе name задать несколько имен? ):
никак
тебе надо подставлять в запрос эти переменные?
От куда у тебя формируется выпадающий список?

ну а вообще делаешь на форме три выпадающих списка
HTML5
1
2
3
4
5
6
<form>
<select name='metrofirst'>...</select> 
<select name='metrosecond'>...</select>
<select name='metrothird'>...</select>
<input type='submit' name='search' value='ПОИСК'>
</form>
ну а дальше делаешь запрос
0
1 / 1 / 0
Регистрация: 18.11.2015
Сообщений: 53
22.11.2015, 20:29  [ТС]
Список формируется из массива $metro_a
Сама форма рабочая, но работает только по переменной $metrofirst, данные для 3х переменных берутся с одного массива $metro_a.
Мне бы как то ограничиться одним выпадающим списком...

Добавлено через 5 минут
Условно говоря, нам нужно чтобы пользователь указывал три удобные станции метро, далее по поиску через выборку мы могли его находить.
Ваш Вариант, безусловно рабочий, но три формы выпадающего меню... Это вообще катастрофа)
0
576 / 514 / 253
Регистрация: 26.09.2010
Сообщений: 2,603
22.11.2015, 20:34
Цитата Сообщение от karkomak Посмотреть сообщение
Это вообще катастрофа)
почему это катастрофа?
А как пользователь выбирает сразу три критерия? если только так как указал Jodah
0
1 / 1 / 0
Регистрация: 18.11.2015
Сообщений: 53
22.11.2015, 20:44  [ТС]
Попробую более подробно)
Создан массив данных из 175 станций московского метро.
В личном кабинете пользователя выведены поля 3х ближайших станций которые он выбирает из массива станций метро, выбранная станция записывается с свое поле: metrofirst, metrosecond или metrothird
Это все работает)

Мне нужна форма поиска, которую я тоже смог сделать, но только для каждой формы по отдельности, получается 3 формы поиска из данных одного массива.
Мне нужно, чтобы была одна форма поиска по данным трех переменных.

P.S. Скриншоты не прикладываются ):
0
576 / 514 / 253
Регистрация: 26.09.2010
Сообщений: 2,603
22.11.2015, 20:46
karkomak, скрины не доступны
0
1 / 1 / 0
Регистрация: 18.11.2015
Сообщений: 53
22.11.2015, 20:47  [ТС]
Да, скриншоты не прикладываются...
Я мб объясняю ужасно?)
0
576 / 514 / 253
Регистрация: 26.09.2010
Сообщений: 2,603
22.11.2015, 20:51
Цитата Сообщение от karkomak Посмотреть сообщение
Я мб объясняю ужасно?)
я не понимаю как пользователь выбирает 3 параметра
0
1 / 1 / 0
Регистрация: 18.11.2015
Сообщений: 53
22.11.2015, 20:57  [ТС]
Давайте попробую еще разочек)
Создан массив данных:
PHP
1
2
3
4
5
6
7
$metro_a = array(
    "1" => "Авиамоторная",
    "2" => "Автозаводская",
    "3" => "Академическая",
        ...
        "175" => "Ясенево"
);
В личном кабинете пользователя:
PHP/HTML
1
2
3
4
5
6
7
8
9
<div class="form-label"><label for="metrofirst"><?php echo '(1) Станция метро:'; ?></label></div>
    <div class="form-input">
        <select name="metrofirst" id="metrofirst" class="metrofirst">
            <option value=""><?php echo "Выберите станцию метро"; ?></option>
            <?php foreach($metro_a as $key=>$m) { ?>
                <option value="<?php echo $key; ?>"<?php if($metrofirst == $key) { echo ' selected="selected"'; } ?>><?php echo $m; ?></option>
            <?php } ?>
        </select>
    </div>
Альтернативные строки для metrosecond и metrothird

Вывод в профиле:
PHP
1
<?php echo 'Метро: '; ?><?php echo "$metro_a[$metrofirst]"; ?> <?php echo "$metro_a[$metrosecond]"; ?> <?php echo "$metro_a[$metrothird]"; ?><br>
Это все работает.

Все что касается формы поиска - выше, не думаю, что нужно дублировать.
Если что-то еще нужно, я еще попробую поподробнее объяснить)
0
576 / 514 / 253
Регистрация: 26.09.2010
Сообщений: 2,603
22.11.2015, 20:59
Цитата Сообщение от karkomak Посмотреть сообщение
Альтернативные строки для metrosecond и metrothird
строки это
Цитата Сообщение от karkomak Посмотреть сообщение
<?php foreach($metro_a as $key=>$m) { ?>
* * * * * * * * <option value="<?php echo $key; ?>"<?php if($metrofirst == $key) { echo ' selected="selected"'; } ?>><?php echo $m; ?></option>
* * * * * * <?php } ?>
правильно
0
1 / 1 / 0
Регистрация: 18.11.2015
Сообщений: 53
22.11.2015, 21:01  [ТС]
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
<!-- METRO -->
    <div class="form-label"><label for="metrofirst"><?php echo '(1) Станция метро:'; ?></label></div>
    <div class="form-input">
        <select name="metrofirst" id="metrofirst" class="metrofirst">
            <option value=""><?php echo "Выберите станцию метро"; ?></option>
            <?php foreach($metro_a as $key=>$m) { ?>
                <option value="<?php echo $key; ?>"<?php if($metrofirst == $key) { echo ' selected="selected"'; } ?>><?php echo $m; ?></option>
            <?php } ?>
        </select>
    </div>
    <div class="formseparator"></div>
    
    <div class="form-label"><label for="metrosecond"><?php echo '(2) Станция метро:'; ?></label></div>
    <div class="form-input">
        <select name="metrosecond" id="metrosecond" class="metrosecond">
            <option value=""><?php echo "Выберите станцию метро"; ?></option>
            <?php foreach($metro_a as $key=>$m) { ?>
                <option value="<?php echo $key; ?>"<?php if($metrosecond == $key) { echo ' selected="selected"'; } ?>><?php echo $m; ?></option>
            <?php } ?>
        </select>
    </div>
    <div class="formseparator"></div>
    
    <div class="form-label"><label for="metrothird"><?php echo '(3) Станция метро:'; ?></label></div>
    <div class="form-input">
        <select name="metrothird" id="metrothird" class="metrothird">
            <option value=""><?php echo "Выберите станцию метро"; ?></option>
            <?php foreach($metro_a as $key=>$m) { ?>
                <option value="<?php echo $key; ?>"<?php if($metrothird == $key) { echo ' selected="selected"'; } ?>><?php echo $m; ?></option>
            <?php } ?>
        </select>
    </div>  
    <div class="formseparator"></div>
    <!-- //METRO -->
Вот полный код)
0
576 / 514 / 253
Регистрация: 26.09.2010
Сообщений: 2,603
22.11.2015, 21:02
karkomak, так тут 3 селекта
Цитата Сообщение от karkomak Посмотреть сообщение
но три формы выпадающего меню... Это вообще катастрофа)
0
1 / 1 / 0
Регистрация: 18.11.2015
Сообщений: 53
22.11.2015, 21:05  [ТС]
Да, потому что я не нашел альтернативных способов решения моей проблемы.
Вот у меня вопрос, можно ли в поисковую форму или в форму регистрации сделать только одну форму?

+ при регистрации, человек должен указать 3 станции метро, значит 3 селекта тут уместно, но форму поиска нужно объединить в одну, вот.
0
576 / 514 / 253
Регистрация: 26.09.2010
Сообщений: 2,603
22.11.2015, 21:11
Цитата Сообщение от karkomak Посмотреть сообщение
но форму поиска нужно объединить в одну, вот.
так у тебя и получается одна форма с 3 сектами
это не 3 формы, а одна

Добавлено через 1 минуту
3 формы это так
HTML5
1
2
3
<form> ... </form>
<form> ... </form>
<form> ... </form>
0
1 / 1 / 0
Регистрация: 18.11.2015
Сообщений: 53
22.11.2015, 21:16  [ТС]
У меня для ПОИСКА по переменным metrofirst, metrosecond и metrothird используется три выпадающих формы.
Мне необходимо, чтобы при регистрации было 3 списка, а при поиске был 1 (который ищет по 3 селектам)

Прости, я 100% путаюсь в понятиях)

Добавлено через 1 минуту
Я не понимаю, как мне можно в 1 поисковую форму вбить поиск по 3м селектам. Они же с одного массива значения берут.
0
576 / 514 / 253
Регистрация: 26.09.2010
Сообщений: 2,603
22.11.2015, 21:18
Цитата Сообщение от karkomak Посмотреть сообщение
используется три выпадающих формы.
это три списка
Цитата Сообщение от karkomak Посмотреть сообщение
Мне необходимо, чтобы при регистрации было 3 списка, а при поиске был 1 (который ищет по 3 селектам)
какая разница где использовать эти списки что при регистрации что при поиске, это будут одни и те же списки с теми же данными
0
Эксперт PHP
3900 / 3238 / 1353
Регистрация: 01.08.2012
Сообщений: 10,914
22.11.2015, 21:18
Тот случай, когда проще нарисовать, чем объяснять... не понимаю задачу.
0
576 / 514 / 253
Регистрация: 26.09.2010
Сообщений: 2,603
22.11.2015, 21:19
Цитата Сообщение от karkomak Посмотреть сообщение
Я не понимаю, как мне можно в 1 поисковую форму вбить поиск по 3м селектам. Они же с одного массива значения берут.
так же как и при регистрации 3 селекта
и примешь три значения из селектов для поиска
PHP
1
2
3
$metrofirst = $_POST['metrofirst']; //значение выбранное в 1 селекте передаст то что value="<?php echo $key; ?>"
$metrosecond= $_POST['metrosecond']; //значение выбранное в 2 селекте передаст то что value="<?php echo $key; ?>"
$metrothird= $_POST['metrothird']; //значение выбранное в 3 селекте передаст то что value="<?php echo $key; ?>"
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
22.11.2015, 21:19
Помогаю со студенческими работами здесь

вывод запроса из формы поиска
у меня на сайте 30 блоков div,у каждого блока свое название.когда в форме поиска по сайту я в вожу какой нибудь запрос,например со словом...

Вывод на экран результатов поиска
Здрасте! В тексте есть слово с буквой д. Я хочу найти это слово и вывести его экран. Регулярные выражения умеют выводить на экран...

Бинарное дерево поиска (вывод на экран)
Бинарное дерево поиска (вывод на экран) Помогите, не могу вывести нормально дерево на экран, выводится только в немногих случаях, в...

Вывод второй формы на экран
Подскажите пожалуйста, как чтобы при выполнения условия if выводилась вторая форма на экран и становилась активной. string a =...

Вывод на экран всех элементов формы
Здравствуйте, уже достаточно долго хожу вокруг да около, но не могу понять как делать одну вещь... Включить в HTML-форму специальную...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Доступность команды формы по условию
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 существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru