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


Поле связь, пустое значение

Поле связь

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

#1 AMudroff

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

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

Отправлено 13 Сентябрь 2016 - 11:46

Здравствуйте!
Какое значение у выпадающего списка поля типа "Связь" если оно не заполнено? Т.е. добавлена новая запись в таблицу и в одно из полей, у которого тип "Связь", не выбрано значение из списка, какое у него будет значение? Как проверить поле типа связь на пустое значение в JavaScript? Что вставить вместо ....
в строчке из кода display_field(13311, $('#value{$one_field.id}').val().....);, чтобы проверить поле связь на пустое значение?

#2 CbCoder

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

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

Отправлено 13 Сентябрь 2016 - 12:40

Цитата

Какое значение у выпадающего списка поля типа "Связь" если оно не заполнено?

0 (ноль). В JavaScript тоже, насколько вижу через консоль. Если заполнено - соответственно id связанной записи.

#3 AMudroff

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

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

Отправлено 13 Сентябрь 2016 - 12:44

Спасибо

#4 AMudroff

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

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

Отправлено 13 Сентябрь 2016 - 16:50

Просмотр сообщенияCbCoder (13 Сентябрь 2016 - 12:40) писал:

0 (ноль). В JavaScript тоже, насколько вижу через консоль. Если заполнено - соответственно id связанной записи.
А есть различие в значении у выпадающего списка поля типа "Связь" если оно не было заполнено (его не трогали, ничего не выбирали) и значения когда выбрана пустая строка (первое значение списка)?

#5 CbCoder

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

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

Отправлено 14 Сентябрь 2016 - 09:12

Нет, это тоже самое. Первое значение как раз и соответствует нулю, т.е. отсутствию связи.

#6 AMudroff

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

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

Отправлено 14 Сентябрь 2016 - 11:10

Тогда что не так в этом вычислении:

if ($line['Наименование товара']=="0")
{
    $line['Номенклатура'] = "0";
    $data['Номенклатура'] = "0";
    update_query($data, "Позиции заказа", "id=$ID");  
}
else
{
    $result = data_select_field(781, "f9941 as nomID", "id=".$line['Наименование товара']['raw']);
    $row = sql_fetch_assoc($result);
    $line['Номенклатура'] = $row['nomID'];
    $data['Номенклатура'] = $row['nomID'];
    update_query($data, "Позиции заказа", "id=$ID");
}

Наименование товара - поле типа "Связь". Если в списке не выбрано ничего или выбран первый пустой элемент списка тогда делать одно, если что-то выбрано в списке (не 0 значение) делать другое. Но если выбрать 0 возникает ошибка: $line['Наименование товара']['raw'] или $line['Наименование товара']['id'] не содержит значения.
И ещё а разве оператор $line['Номенклатура'] = $row['nomID'] не должен сразу присваивать значение в поле Номенклатура (Номенклатура - поле типа "Связь"), у меня поле остаётся не изменённым.

Сообщение отредактировал CbCoder: 14 Сентябрь 2016 - 11:46


#7 CbCoder

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

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

Отправлено 14 Сентябрь 2016 - 11:50

if ($line['Наименование товара']=="0") - так писать нельзя, поля связи являются массивами. Правильно - if ($line['Наименование товара']['raw']=="0")

#8 AMudroff

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

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

Отправлено 14 Сентябрь 2016 - 12:06

Сработало на такую строку if ($line['Наименование товара']['raw']=='').
А с этим как быть?
Разве оператор $line['Номенклатура'] = $row['nomID'] не должен сразу присваивать значение в поле Номенклатура (Номенклатура - поле типа "Связь"), у меня поле остаётся не изменённым.
Можно ли присвоить (в вычислении) какое-либо значение любому полю находясь в режиме редактирования записи, чтобы результат можно было видеть сразу (т.е. можно было воспользоваться этим новым значением поля), а не увидеть результат присвоения после сохранения записи и последующего перехода в просмотр? Или это JavaScript`ом нужно делать?

Сообщение отредактировал AMudroff: 14 Сентябрь 2016 - 13:38


#9 CbCoder

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

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

Отправлено 14 Сентябрь 2016 - 17:33

Любые вычисления работают после сохранения записи и соответственно перезагрузки страницы. Исключение - подтаблицы, там сохранение данных идет по ajax, поэтому результат можно увидеть сразу или спустя пару секунд, без перезагрузки.





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

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