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

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

Вернуться   Форум программистов > Web программирование > WordPress и другие CMS
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.04.2017, 20:19   #1
scalpel
Форумчанин
 
Аватар для scalpel
 
Регистрация: 01.02.2010
Сообщений: 118
По умолчанию Массив чекбоксов, как в PHP узнать, какой из чекбоксов выбран?

Есть форма с чекбоксами
Код HTML:
<ul>
<li><input type="checkbox" id="ch2_1" name="foors[]" value="1" /><label for="ch2_1">1 этаж</label></li>
<li><input type="checkbox" id="ch2_2" name="foors[]" value="2" /><label for="ch2_2">2 этажа</label></li>
<li><input type="checkbox" id="ch2_3" name="foors[]" value="3" /><label for="ch2_3">3 этажа</label></li>
<li><input type="checkbox" id="ch2_4" name="foors[]" value="4" /><label for="ch2_4">4 и больше</label></li>
</ul>
и форма отправляет в функцию массив с параметры для обработке
PHP код:
if (!empty($_GET['foors'])) {
$args['meta_query'][] = array(
    
'key' => 'foors',
    
'value' => $_GET['foors'],
    
'type' => 'NUMERIC',
    
'compare' => 'IN'
    
);

все работает хорошо только мне надо сделать так если выбран 4 чекбокс тогда должно вывести все что больше 4, как можно это реализовать?
scalpel вне форума Ответить с цитированием
Старый 05.04.2017, 09:44   #2
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,158
По умолчанию

не знаю дальнейшего кода, потому прдполагаю что как-то так:
PHP код:
if (!empty($_GET['foors'])) {
$compare 'IN';
if (
$_GET['foors']==4) {
  
$compare '>=';
}
$args['meta_query'][] = array(
    
'key' => 'foors',
    
'value' => $_GET['foors'],
    
'type' => 'NUMERIC',
    
'compare' => $compare
    
);

это какая то CMS? Если да - указывайте её, если просто вопрос по PHP - то нужно в соотв раздел
ADSoft вне форума Ответить с цитированием
Старый 05.04.2017, 10:26   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от ADSoft Посмотреть сообщение
это какая то CMS?
а разве это не WordPress? вроде бы вопрос как раз в этом разделе...

p.s. я не знаком с WP, поэтому утверждать не берусь...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 05.04.2017, 15:32   #4
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,158
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
а разве это не WordPress? вроде бы вопрос как раз в этом разделе...
Цитата:
Wordpress и другие CMS
может это другая ))))
ADSoft вне форума Ответить с цитированием
Старый 05.04.2017, 15:34   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от ADSoft Посмотреть сообщение
может это другая ))))
да, конечно, может. )))

поэтому ждём реакцию/ответ автора темы.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 05.04.2017, 15:51   #6
scalpel
Форумчанин
 
Аватар для scalpel
 
Регистрация: 01.02.2010
Сообщений: 118
По умолчанию

Да, это CMS WordPress.

Вариант что предлагал ADSoft я рассмотрел правда немножко по другому но конечный результат не меняется и он не работает т.е. работает как IN больше 4 не показывает.
Просто может быть вариант что выбрано 1 и 4 тогда будет выводить все больше 1
scalpel вне форума Ответить с цитированием
Старый 05.04.2017, 16:19   #7
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от scalpel Посмотреть сообщение
я рассмотрел правда немножко по другому
так покажите, как делали.


Цитата:
Сообщение от scalpel Посмотреть сообщение
и он не работает т.е. работает как IN больше 4 не показывает.
так суть предложения ADSoft в том, чтобы для foors == 1, 2 или 3 использовать 'compare' => 'IN'
а для foors == 4 использовать "больше или равное":
'compare' => '>='

Вы так и сделали?

p.s. кстати, буковку "L" потеряли в слове, "этаж" по английски - это "floor"
Serge_Bliznykov вне форума Ответить с цитированием
Старый 05.04.2017, 17:43   #8
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,158
По умолчанию

посмОтрел специально для WP
Код:
'compare' => '>=',
именно так, больше или равно
а остальные галочки то у вас работают правильно?
может реально неверно имя поля указали?
ADSoft вне форума Ответить с цитированием
Старый 06.04.2017, 09:32   #9
scalpel
Форумчанин
 
Аватар для scalpel
 
Регистрация: 01.02.2010
Сообщений: 118
По умолчанию

Переменную я видел что не правильно только я уже ее повсюду указывал и все хорошо.
Выборка делается все нормально даже если беру 4 то выводит только то что есть с 4 а что больше не хочет.
scalpel вне форума Ответить с цитированием
Старый 06.04.2017, 10:34   #10
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от scalpel Посмотреть сообщение
Выборка делается все нормально даже если беру 4 то выводит только то что есть с 4 а что больше не хочет.
покажите свой код после изменений.

Пробовали отметить на форме только ОДИН чекбокс (где "4 и больше"
<li><input type="checkbox" id="ch2_4" name="foors[]" value="4" /><label for="ch2_4">4 и больше</label></li>) ?
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обработка чекбоксов lingvo PHP 5 17.11.2014 08:46
Обработка дин чекбоксов nikita33321 PHP 0 07.10.2012 14:07
Обработка чекбоксов и групп чекбоксов MCLotos Помощь студентам 0 11.08.2011 15:52
прозрачность чекбоксов reynevan Win Api 7 26.10.2010 14:39
Суммация значение чекбоксов inf-45 Общие вопросы Delphi 4 03.04.2010 13:11