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


Контроль введенных данных


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

#1 Zver

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

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

Отправлено 03 Апрель 2014 - 04:47

Прочитал о новой возможности календарь и очень порадовался. В документации наткнулся на упоминание функции calc_alerts и тоже обрадовался :-). (На сколько я понял) Теперь можно проверять введенные данные на стороне сервера. Но вот незадача как отменить сохранение изменения или новые данные если они не корректны? Вывести сообщение с помощью этой функции о том что данные введены ошибочные у меня получается, но при этом они сохраняются. Это не правильно, так как пользователь может проигнорировать сообщение.
И еще вопрос в каких ситуациях происходит эта проверка? Я так полагаю что при любой попытке внесения или изменения данных.

#2 CbCoder

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

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

Отправлено 03 Апрель 2014 - 09:25

Цитата

Но вот незадача как отменить сохранение изменения или новые данные если они не корректны?

Можно взять старое значение из переменной $event['changed'][111]['old'], где 111 - id нужного поля, и присвоить его назад.

Цитата

И еще вопрос в каких ситуациях происходит эта проверка? Я так полагаю что при любой попытке внесения или изменения данных.

Проверка сам по себе не происходит, вы сами ее вставляете в ваше же вычисление, которое в свою очередь уже настроено на определенное событие.

#3 Zver

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

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

Отправлено 03 Апрель 2014 - 09:35

Так а что делать если это новые данные и старых значений нет. Что мне тогда подставить? :-)
Насколько я понял отмены не существует...

#4 CbCoder

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

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

Отправлено 03 Апрель 2014 - 10:43

Еще проще и элементарнее - подставляете пустое значение. Или вы что-то иное подразумеваете под "отменой", не пойму?

#5 Zver

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

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

Отправлено 04 Апрель 2014 - 09:27

Речь идет о заявках. Система должна контролировать что бы две заявки не пересекались по времени. Вот и возникает вопрос что мне сделать с человеком который добавил заявку в то время которое уже занято? В случае если он редактирует заявку, я заменю новые значения на старые. А что делать если это заявка новая?

ЗЫ. Таблица "Заявки" с полями: начало, окончание, комментарий.

#6 CbCoder

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

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

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

Тут нет других вариантов, кроме как обнулить время для того чтобы человек подставил другое.

#7 Zver

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

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

Отправлено 04 Апрель 2014 - 10:14

Разрабатываемая система ориентируется на то, что пользователь не будет просматривать табличные значения. Просмотр, ввод и редактирование только с помощью календаря. Вы же понимаете что будет если дату установить равной 0000-00-00?... Он эту запись так и не найдет. И она будет болтаться в БД

#8 CbCoder

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

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

Отправлено 04 Апрель 2014 - 10:28

Я же вам написал: других вариантов не существует. Вы можете удалить запись, но тогда мне непонятно куда будет выводится сообщение. Хотя если разговор идет про календарь, может он это и поддерживает, я не в курсе. У меня речь шла про обычное добавление записи, а не через календарь.

#9 whitecapital

    Новичок

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

Отправлено 03 Июнь 2014 - 10:51

Добрый день! Помогите, пожалуйста!

Условия:

1)Карточка клиента "Клиент"
2)В карточке клиента есть поле "Сумма" куда я хочу добавить итоговую сумму из подтаблицы из колонки "Брутто"
3) Есть подтаблица, в которой есть поле "Брутто"


if ($line['Брутто'])

{

$sqlQ = "SELECT SUM(`f2891`) AS sum FROM ".DATA_TABLE."130 WHERE `f1750`=".$line['Клиент']['raw']." and status=0 and `id`<>".$ID;
$pre = sql_query($sqlQ) or die(mysql_error());
$row = mysql_fetch_assoc($pre);

if ($row['sum']===NULL)
{
$line['Клиент']['Сумма']=$line['Брутто'];
}
else
{
$line['Клиент']['Сумма']=$row['sum']+$line['Брутто'];
}



Вот такие вычисления я сделала, ну сумма в итоге не складывается, просто "0"

#10 CbCoder

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

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

Отправлено 03 Июнь 2014 - 11:05

ID таблиц и полей точно соответствуют нужным вам? Вычисление на какое событие стоит?





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

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