Перейти к содержимому


проверка множественный список содержит слово


Сообщений в теме: 4

#1 oknik

    Активный участник

  • Пользователи
  • PipPipPip
  • 99 сообщений

Отправлено 09 Апрель 2018 - 20:16

что то не получается, оно и понятно что. т.к. поле $line['Ошибки'] - это список с множественным выбором, и нужно проверить есть ли в нем слово "Разм"

$text_check = "";
if (strpos($line['Ошибки'], "Разм")  !== false ) $text_check = "Есть";
if (
$text_check == "Есть"
and
$line['Домен (ссылка)'] != ""
and
$line['Категория'] != ""
and
($line['Название проекта'] != "" or $line['Название проекта'] != "Введите название!!!")
and
$line['Папка на сервере'] == "Да"
)
$line['Готовность Api KB'] = 1;

без проверки этого поля все работает как надо

#2 oknik

    Активный участник

  • Пользователи
  • PipPipPip
  • 99 сообщений

Отправлено 09 Апрель 2018 - 21:22

ясно, понятно....
проверяется так же как и обычное поле список
т.е. например так $line['Ошибки']!="Разм"

#3 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 759 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 10 Апрель 2018 - 09:16

Просмотр сообщенияoknik (09 Апрель 2018 - 21:22) писал:

проверяется так же как и обычное поле список
т.е. например так $line['Ошибки']!="Разм"

Это сработает только если в поле выбрано одно значение, а множественный список как раз подразумевает что их может быть несколько. Поэтому первый ваш вариант более правильный, единственное в чем вы ошиблись - в случае с русскими словами надо использовать mb_strpos - она корректно работает с юникодом, а strpos - только с однобайтными кодировками.

#4 oknik

    Активный участник

  • Пользователи
  • PipPipPip
  • 99 сообщений

Отправлено 23 Май 2018 - 13:19

Просмотр сообщенияCbCoder (10 Апрель 2018 - 09:16) писал:

Это сработает только если в поле выбрано одно значение, а множественный список как раз подразумевает что их может быть несколько. Поэтому первый ваш вариант более правильный, единственное в чем вы ошиблись - в случае с русскими словами надо использовать mb_strpos - она корректно работает с юникодом, а strpos - только с однобайтными кодировками.
Тогда подскажите еще, как быть с запросами через api к такому полю (блок filter)? Если например выбрано несколько значений, а нам нужно проверить наличие одного.

"filter": { "row": { "status": { "term": "=", "value": 0, "union": "AND" }, "f807": { "term": "=", "value": 172, "union": "AND" } }

что указывать в "term": ???

Сообщение отредактировал oknik: 23 Май 2018 - 13:20


#5 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 759 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 24 Май 2018 - 09:57

В запросах для этой цели используется LIKE. Значение должно быть обрамлено знаками процента.





Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 анонимных