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


Всплывающие окна с вопросами


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

#1 Dinara

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

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

Отправлено 22 Апрель 2014 - 08:39

Добрый день!
Из контрагента добавляем комментарий посредством дополнительного действия.

					
					<br />
					
				</div>
				
<script type= ipb.global.registerReputation( 'rep_post_23139', { domLikeStripId: 'like_post_23139', app: 'forums', type: 'pid', typeid: '23139' }, parseInt('0') );

#2 CbCoder

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

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

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

Теоретически можно, через JS в поле на событие отправки формы, с использованием js-функции confirm.

#3 Dinara

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

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

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

Там же сначала должна быть проверка на статус получается,в зависимости от него уже задавать вопрос..
Забыла указать важную деталь-если четвертый этап-там уже нужно заполнить 2 поля..Это тоже реально?

#4 CbCoder

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

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

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

Да хоть 10 полей. Это по идее не должно как-то влиять.

#5 Dinara

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

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

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

мне где-то submit нужно прописать,да?

#6 CbCoder

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

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

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

Чуть измененный пример из документации:

function submit_func()
{ // Функция по событию "сохранение записи" ("отправка формы", "submit")
  // тут ваши действия
}
addHandler(document.getElementById("edit_form"), "onsubmit", submit_func);

Добавляете в JS любого поля.

Если функция должна отменять отправку формы (например, что-то не то ввели), то в ее конце должно быть return false;

#7 Dinara

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

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

Отправлено 22 Апрель 2014 - 11:01

Что-то вроде получается даже)
А как можно соединить confirm с условиями?
Например-если Статус=Нулевой, тогда задается вопрос. Если нажимают ОК-то следующий вопрос,а статус в контрагенте меняется на=Первый этап (Потом опять вопрос и та же схема если ОК или отмена), если ОТМЕНА-то карточка просто сохраняется,статус не меняется.
if  ( ($line['Компания']['Статус']="Нулевой") 
(confirm("Соответствует ли телефон указанной организации?")) //если нажимает "Да"-то следующий вопрос, а статус="Первый этап"
{
  (confirm("Интересны ли государственные заказы данной организации?"))
}


#8 CbCoder

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

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

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

В JS используются не $line, а обращение к полям ввода через document.getElementById. См. документацию по JS.

#9 Dinara

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

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

Отправлено 22 Апрель 2014 - 12:55

field_value = document.getElementById('value13521').value;
if (field_value == "Нулевой")
Вот так правильно писать будет? А как все-таки совместить с confirm?

#10 CbCoder

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

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

Отправлено 22 Апрель 2014 - 13:24

В чем проблема то совместить, не понял? Что вы имеете ввиду под "совмещением"?

field_value = document.getElementById('value13521').value;
if (field_value == "Нулевой") res = confirm("Соответствует ли телефон указанной организации?");
if (res == true) ... // если ответ "OK" то ... и так далее


#11 Dinara

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

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

Отправлено 22 Апрель 2014 - 13:31

field_value = document.getElementById('value13521').value;
if (field_value == "Нулевой")
{
(confirm("Перевести на первый этап?"))
Вот так прописывать могу?
Не могу придумать как правильно прописать :
Если ответили ОК-то поменять значение в контрагенте и следующий вопрос задать..value13521 это то поле в комментариях в которых я работаю..
Хочется понять)

#12 CbCoder

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

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

Отправлено 22 Апрель 2014 - 13:33

Я же написал выше как надо.

field_value = document.getElementById('value13521').value;
if (field_value == "Нулевой")
{
  res = confirm("Перевести на первый этап?");
}
if (res == true) ... // если ответ "ОК", то ...


#13 Dinara

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

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

Отправлено 22 Апрель 2014 - 13:37

когда отправляла ответ-там только словестное было)попробую)

#14 CbCoder

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

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

Отправлено 22 Апрель 2014 - 13:41

Быстро читаете слишком, я часто правлю ответ в течении минут 5-10) Предпоследний ответ тоже дописал, кстати.

#15 Dinara

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

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

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

а я то думала что неужто не так посмотрела,буду знать))
Что-то теперь только у меня пропадают вообще кнопки для сохранения))
Код примерно так
function submit_func()
{//начало функции
field_value = document.getElementById('value13521').value;
if (field_value == "Нулевой")
{ // Для нулевого этапа
{
  res = confirm("Перевести на первый этап?");
}
if (res == true)
{
// Переводим на первый этап статус у контрагента (?)
alert("Если результат тру1-проверка!")
// {
//   res2 = confirm("Перевести на второй этап этап?");
// }
  
//  if (res2 == true)
   // Переводим на первый этап статус у контрагента

//  { alert("Если результат тру1-проверка!") }
}
elseif (res == false)
{alert("Карточка сохранена с нулевым этапом")}
}
} //конец фукнции
addHandler(document.getElementById("edit_form"), "onsubmit", submit_func);

					
					<br />
					<p class= Сообщение отредактировал Dinara: 22 Апрель 2014 - 15:10


#16 CbCoder

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

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

Отправлено 22 Апрель 2014 - 15:32

Это последствия ошибки JS, которая возникает в вашем коде. Проверяйте наличие и тип ошибки в консоли браузера.

Например, в JS нет конструкции elseif. В вашем случае он вообще не нужен, достаточно else т.к. это и будет false, там других вариантов не существует.


И старайтесь отступы делать внутри блока в фигурных скобках, так код легче читать, соответственно опечаток меньше.

if (условие)
{
  // код внутри блока с отступом в 2 пробела
  if (условие внутри блока)
  {
    // здесь уже 4 пробела, т.к. блок внутри блока
  }
}


#17 Dinara

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

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

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

function submit_func()
{//начало функции
field_value = document.getElementById('value13521').value;
if (field_value == "Нулевой")
	 { // Для нулевого этапа
			{  res = confirm("Перевести на первый этап?");  }
	   if (res == true)
			{ alert("Если результат тру1-проверка!") }
else  { alert("Карточка сохранена с нулевым этапом") }

        }
} //конец фукнции
addHandler(document.getElementById("edit_form"), "onsubmit", submit_func);
Чтото у себя редактирую-скидываю,а тут криво(
Эм,в консоли..
кстати,когда скинула код-у себя и сменила как раз elseif на else=)

Сообщение отредактировал Dinara: 22 Апрель 2014 - 16:07


#18 CbCoder

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

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

Отправлено 22 Апрель 2014 - 16:34

Криво, потому что вы сами криво блоки формируете, простите за прямоту. Должно быть так:

function submit_func()
{
  field_value = document.getElementById('value13521').value;
  if (field_value == "Нулевой")
  {
    res = confirm("Перевести на первый этап?");
    if (res == true)
    {
      alert("Если результат тру1-проверка!")
    }
    else
    {
      alert("Карточка сохранена с нулевым этапом")
    }
  }
}
addHandler(document.getElementById("edit_form"), "onsubmit", submit_func);

Это тот же абсолютно код, но формализованный как я советовал. Как видите, читается гораздо нагляднее. Даже без комментариев (код стал "самодокументируемым")

#19 Dinara

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

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

Отправлено 22 Апрель 2014 - 17:45

да ладно,сама знаю что криво)
Да уж,действительно,сейчас все ок,видимо совсем со скобками лишку переставила...
А если нужно поменять значение поля в связанной таблице (Контрагент.Статус) ?

#20 CbCoder

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

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

Отправлено 22 Апрель 2014 - 17:57

В связанной никак не поменяете, только в тех полях, что находятся на странице. Javascript не работает с удаленными данными (вернее напрямую не работает), только с текущей страницей в браузере.





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

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