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


Условие для доп.действия


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

#1 Dinara

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

  • Пользователи
  • PipPipPip
  • 527 сообщений
  • Пол:Женщина
  • Город:Уфа

Отправлено 12 Август 2013 - 06:57

Доброго времени суток!
Есть поле "Номер карты ОСО", тип поля-связь.
Как можно прописать в доп,действии, что если это поле не пустое, тогда выводится сообщение о том, что больше сформировать нельзя ничего?
if (($line['Тип']!=="Оплачен") or ($line['Номер карты ОСО']!==''"))
{
  echo "<script>alert('Ни один счет по данному контрагенту не был оплачен. Либо карта ОСО по данному контрагенту уже была сформирована')</script>";
}
Вот не знаю как тут прописать корректно..(

#2 CbCoder

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

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

Отправлено 12 Август 2013 - 09:09

У вас синтаксическая ошибка (опечатка), и это видно сразу по подсветке кода, если вы внимательно посмотрите на свое сообщение.

if (($line['Тип']!=="Оплачен") or ($line['Номер карты ОСО']!==''"))
Лишняя кавычка " в конце.

#3 Dinara

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

  • Пользователи
  • PipPipPip
  • 527 сообщений
  • Пол:Женщина
  • Город:Уфа

Отправлено 12 Август 2013 - 09:24

это я нечаянно дописала, так тоже пробовала,не получается, все равно выводит предупреждающее сообщение, хотя первое условие выполняется, а поле типа связь "Номер карты ОСО" пустое
if (($line['Тип']!=="Оплачен") or ($line['Номер карты ОСО']!==''))
{
  echo "<script>alert('Ни один счет по данному контрагенту не был оплачен. Либо карта ОСО по данному контрагенту уже была сформирована')</script>";
}


#4 CbCoder

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

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

Отправлено 12 Август 2013 - 09:42

У вас в условие стоит "or" - "или", поэтому код будет выполняться если хотя бы одно из условий выполняется. Поэтому если первое условие выполняется, второе уже никакого значения не имеет.

#5 Dinara

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

  • Пользователи
  • PipPipPip
  • 527 сообщений
  • Пол:Женщина
  • Город:Уфа

Отправлено 12 Август 2013 - 09:49

эм?...
1.
($line['Тип']!=="Оплачен")
Если поле не заполнено значением "Оплачен" будет предупреждение
2.
($line['Номер карты ОСО']!=='')
если поле со связью не пустое

Первое условие корректно, поле "Оплачен" заполнено значением, значит доп.действие должно работать. (в моем случае-оно заполнено)
Второе условие-если не пустое значение-значит должно быть предупреждающее сообщение. То есть если оно пустое-то предупреждение не должно срабатывать.Доп.действие должно выполняться. (т.к у меня данное поле пустое)

Как-то так..

Или как прописать тогда по другому?..Необходима эта проверка. Просто до этого я уже создавала подобного типа условия,с "or" и все было корректно, то есть если одно условие выполняется, но другое нет-предупеждение было, а тут и первое выполняется и второе-предупреждение есть. Поэтому у меня мысль,что я просто неправильно прописала условие для второго, может для поля связь по другому прописывается пустое значение?

Сообщение отредактировал Dinara: 12 Август 2013 - 09:50


#6 CbCoder

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

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

Отправлено 12 Август 2013 - 10:12

Цитата

если поле со связью не пустое

Поле "связь" НЕ может быть пустое. Это массив. Можно проверять $line['Номер карты ОСО']['raw']!=0, к примеру. Или конкретное поле в связанное записи, например $line['Номер карты ОСО']['Название']!="".

#7 Dinara

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

  • Пользователи
  • PipPipPip
  • 527 сообщений
  • Пол:Женщина
  • Город:Уфа

Отправлено 12 Август 2013 - 11:23

большущее спасибо,мысль ясна,
$line['Номер карты ОСО']['raw']!=0
помогло)))





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

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