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


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


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

#1 Dinara

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

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

Отправлено 19 Май 2014 - 10:10

Доброго дня! На данный момент есть доп.действие следующего рода
if ($line['Статус']=="ДУБЛЬ")
{
  echo "<script>alert('Статус ДУБЛЬ уже присвоен контрагенту')</script>";
}
elseif ($line['Статус']=="Некорректная карта")
{
  echo "<script>alert('Статус НЕКОРРЕКТНАЯ КАРТА уже присвоен контрагенту')</script>";
}
elseif ($line['Статус']=="Пятый этап")
{
  echo "<script>alert('Контрагенту уже присвоен статус ОПЛАЧЕНО')</script>";
}
elseif (($line['Сотрудник']==$user['id']) or
(($user['group_id']==2)and $line['Группа доступа сотрудника']==801)    or
(($user['group_id']==2)and $line['Группа доступа сотрудника']==2)    or
(($user['group_id']==991)and $line['Группа доступа сотрудника']==991)    or
(($user['group_id']==991)and $line['Группа доступа сотрудника']==981)    or
(($user['group_id']==1031)and $line['Группа доступа сотрудника']==1031)    or
(($user['group_id']==1031)and $line['Группа доступа сотрудника']==1041)    or
(($user['group_id']==1111)and $line['Группа доступа сотрудника']==1091)    or
(($user['group_id']==1111)and $line['Группа доступа сотрудника']==1111)    or
(($user['group_id']==1121)and $line['Группа доступа сотрудника']==1101)    or  
(($user['group_id']==1121)and $line['Группа доступа сотрудника']==1121)    or
($user['group_id']==1)  or ($user['group_id']==867)
)
{
$schet['Компания'] = $ID;
$schet['Создатель комментария'] = $user['id'];
$schet['Комментарий'] = "ТНО";
$schet['Этап работы'] = $line['Статус'];
$schet['Текущая группа доступа'] = $group_id['id'];
$new_id = insert_query($schet, "Комментарии");
  echo "<script>alert('Добавлен автоматический комментарий ТНО')</script>";
}
else
{
echo "<script>alert('Вы не являетесь менеджером по данному контрагенту')</script>";
}

Можно ли как-то добавить туда-когда нажали на эту кнопку-открывается небольшое окно,куда добавляем Дату контакта (с временем) и она копируется в поле "Дата контакта"?

#2 Dinara

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

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

Отправлено 19 Май 2014 - 10:16

Прописала так, но как сделать,чтобы во всплывающем было именно поле типа "Дата"?если прописать так:
if ($line['Статус']=="ДУБЛЬ")
{
  echo "<script>alert('Статус ДУБЛЬ уже присвоен контрагенту')</script>";
}
elseif ($line['Статус']=="Некорректная карта")
{
  echo "<script>alert('Статус НЕКОРРЕКТНАЯ КАРТА уже присвоен контрагенту')</script>";
}
elseif ($line['Статус']=="Пятый этап")
{
  echo "<script>alert('Контрагенту уже присвоен статус ОПЛАЧЕНО')</script>";
}
elseif (($line['Сотрудник']==$user['id']) or
(($user['group_id']==2)and $line['Группа доступа сотрудника']==801)    or
(($user['group_id']==2)and $line['Группа доступа сотрудника']==2)    or
(($user['group_id']==991)and $line['Группа доступа сотрудника']==991)    or
(($user['group_id']==991)and $line['Группа доступа сотрудника']==981)    or
(($user['group_id']==1031)and $line['Группа доступа сотрудника']==1031)    or
(($user['group_id']==1031)and $line['Группа доступа сотрудника']==1041)    or
(($user['group_id']==1111)and $line['Группа доступа сотрудника']==1091)    or //Галимов
(($user['group_id']==1111)and $line['Группа доступа сотрудника']==1111)    or
(($user['group_id']==1121)and $line['Группа доступа сотрудника']==1101)    or   //Насибуллина
(($user['group_id']==1121)and $line['Группа доступа сотрудника']==1121)    or

($user['group_id']==1)  or ($user['group_id']==867)
)
{
//$line['Статус']=$line['Статус'];
$schet['Компания'] = $ID;
$schet['Создатель комментария'] = $user['id'];
$schet['Комментарий'] = "ТНО";
$schet['Этап работы'] = $line['Статус'];
$schet['Текущая группа доступа'] = $group_id['id'];
$new_id = insert_query($schet, "Комментарии");
  echo "<script>alert('Добавлен автоматический комментарий ТНО')</script>";
}
else
{
  echo "<script>alert('Вы не являетесь менеджером по данному контрагенту')</script>";
  }


То при подставновке 01.01.2003 мы видим " Дата контакта : 20.01.2001 03:00
"
И при этом даже если Статус = Дубль,то срабатывать же окно не должно-а оно вылазиет)

Сообщение отредактировал Dinara: 19 Май 2014 - 10:18


#3 CbCoder

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

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

Отправлено 19 Май 2014 - 10:28

Не понял, что именно вы прописали?

Добавить всплывающее окно можно разными способами. Можно использовать promt в JS доп.действия, можно использовать доп.действие в отдельном окне.

#4 Dinara

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

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

Отправлено 19 Май 2014 - 12:41

Всплывающее окно то выходит,только так чтобы тип поля был дата?
Либо как вариант как можно дописать вычисления:
(substr($line['Дата контакта'],0,10)==date("Y-m-d"))
Это вычисление соответственно преобразовывало Дату контакта только в дни-месяцы-года и сравнивало с текущим. Проблема в том, что когда мы нажимаем на кнопку доп.действия и при этом поменяем дату на другую-это уже не срабатывает,так как дата уже поменялась.
Попыталась прописать на проверку старого значения
($event['changed']['2381']['old'] == date("Y-m-d"))
Но как можно соединить два в одном? Ведь во втором случае не преобразует дату контакта в день-месяц-год,идет сравнение еще с минутами?

#5 CbCoder

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

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

Отправлено 19 Май 2014 - 14:22

Не понял, о чем вы. Причем тут тип поля? И зачем вам сравнение с текущей датой или проверка с предыдущим значением, когда речь идет просто о вводе произвольной даты, как я понял? Или вы просто не знаете как передать введенную из окна дату в таблицу? Так для этого есть документация по доп.действиям в всплывающем окне. Или же сделали через JS?

#6 Dinara

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

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

Отправлено 26 Май 2014 - 06:44

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

#7 CbCoder

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

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

Отправлено 26 Май 2014 - 10:43

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

#8 Dinara

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

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

Отправлено 26 Май 2014 - 11:38

Понимаю что делаю совсем криво..во всплывающем окне
if (
($line['Статус']=="Нулевой") and

(($line['Сотрудник']==$user['id']) or
(($user['group_id']==2)and $line['Группа доступа сотрудника']==801)    or
(($user['group_id']==2)and $line['Группа доступа сотрудника']==2)    or
(($user['group_id']==991)and $line['Группа доступа сотрудника']==991)    or
(($user['group_id']==991)and $line['Группа доступа сотрудника']==981)    or
(($user['group_id']==1031)and $line['Группа доступа сотрудника']==1031)    or
(($user['group_id']==1031)and $line['Группа доступа сотрудника']==1041)    or
(($user['group_id']==1111)and $line['Группа доступа сотрудника']==1091)    or //Галимов
(($user['group_id']==1111)and $line['Группа доступа сотрудника']==1111)    or
(($user['group_id']==1121)and $line['Группа доступа сотрудника']==1101)    or   //Насибуллина
(($user['group_id']==1121)and $line['Группа доступа сотрудника']==1121)    or

($user['group_id']==1)  or ($user['group_id']==867) )
)
{
if (isset($_REQUEST["rating"]))
{
$line['Дата контакта']=$_REQUEST["rating"];
echo "<script>";
echo "window.opener.location.reload(1);"; // Перезагружаем родительское окно
echo "window.close()"; // Закрываем текущее
echo "</script>";
}
echo "<form method='get'>";
echo "Дата контакта";
echo "<input type='hidden' name='id' value='$button_id'>"; // Передаем значение кнопки
echo "<input type='hidden' name='line_id' value='$ID'>"; // Значение строки
echo "<input type='text' name='rating' value=''>";
echo "<input type='submit' value='Отправить'>";
echo "</form>";

{
$schet['Компания'] = $ID;
$schet['Создатель комментария'] = $user['id'];
$schet['Комментарий'] = "(АК) ТНО";
$schet['Этап работы'] = $line['Статус'];
$schet['Текущая группа доступа'] = $group_id['id'];
$new_id = insert_query($schet, "Комментарии");
echo "<script>alert('Добавлен автоматический комментарий ТНО')</script>";
}
}


#9 CbCoder

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

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

Отправлено 26 Май 2014 - 12:09

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

Во-вторых, старайтесь переименовывать имена переменных в примерах на нужные вам по смыслу, опять же проще разобраться будет. Например, rating логичнее было заменить на date.

В-третьих, что касается даты. Если ее вводить в поле также как она хранится в БД (в формате "Y-m-d"), то ничего менять не надо, все у вас будет работать и так. Правда, обычно люди пишут ее в более привычном "русском" виде "d.m.Y", поэтому может потребоваться ее преобразовать. В КБ для этого уже есть готовая функция form_eng_time. Кроме того, вы наверное хотите добавить туда текущую дату по умолчанию, для автозаполнения.

В итоге получаем:

if (
($line['Статус']=="Нулевой") and
(($line['Сотрудник']==$user['id']) or
(($user['group_id']==2) and $line['Группа доступа сотрудника']==801) or
(($user['group_id']==2) and $line['Группа доступа сотрудника']==2) or
(($user['group_id']==991) and $line['Группа доступа сотрудника']==991) or
(($user['group_id']==991) and $line['Группа доступа сотрудника']==981) or
(($user['group_id']==1031) and $line['Группа доступа сотрудника']==1031) or
(($user['group_id']==1031) and $line['Группа доступа сотрудника']==1041) or
(($user['group_id']==1111) and $line['Группа доступа сотрудника']==1091) or //Галимов
(($user['group_id']==1111) and $line['Группа доступа сотрудника']==1111) or
(($user['group_id']==1121) and $line['Группа доступа сотрудника']==1101) or   //Насибуллина
(($user['group_id']==1121) and $line['Группа доступа сотрудника']==1121) or
($user['group_id']==1)  or ($user['group_id']==867) )
)
{
	if (isset($_REQUEST['date']))
	{
		$line['Дата контакта'] = form_eng_time($_REQUEST['date']);
		echo "<script>";
		echo "window.opener.location.reload(1);"; // Перезагружаем родительское окно
		echo "window.close()"; // Закрываем текущее
		echo "</script>";
	}
	echo "<form method='get'>";
	echo "<input type='hidden' name='id' value='$button_id'>"; // Передаем значение кнопки
	echo "<input type='hidden' name='line_id' value='$ID'>"; // Значение строки
	echo "Дата контакта <input type='text' name='date' value='".date("d.m.Y")."'>"; // Помещаем текущую дату по умолчанию
	echo "<input type='submit' value='Отправить'>";
	echo "</form>";
}

Я убрал отсюда последний блок, там где $schet['Компания'] и т.д., т.к. не понял зачем он вообще тут.

#10 Dinara

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

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

Отправлено 26 Май 2014 - 16:49

Крутотень,спасибо!буду разбираться сидеть)))
А насчет последнего блока-автоматический комментарий просто добавляется при нажатии на эту кнопку в подтаблицу))

#11 Dmitry506

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

  • Пользователи
  • PipPipPip
  • 30 сообщений
  • Пол:Мужчина
  • Город:Орел

Отправлено 23 Март 2015 - 17:54

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

#12 Dmitry506

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

  • Пользователи
  • PipPipPip
  • 30 сообщений
  • Пол:Мужчина
  • Город:Орел

Отправлено 25 Март 2015 - 09:37

Вобщем получилось вот так, и работает:

if (isset($_REQUEST['date']))
{
		$line['Статус'] = "Дата ".form_eng_time($_REQUEST['date']);
		echo "<script>";
		echo "window.opener.location.reload(1);"; // Перезагружаем родительское окно
		echo "window.close()"; // Закрываем текущее
		echo "</script>";
}
echo "<form method='get'>";
echo "<input type='hidden' name='id' value='$button_id'>"; // Передаем значение кнопки
echo "<input type='hidden' name='line_id' value='$ID'>"; // Значение строки
echo "Дата встречи <input id='d124' type='text' name='date' value=''>"; // Помещаем пустую дату по умолчанию
//echo "Дата встречи <input id='d124' type='text' name='date' value='".date("d.m.Y")."'>"; // Помещаем текущую дату по умолчанию
echo "<input type='submit' value='Назначить'>";
echo "</form>";

echo <<<LABEL

<script src="include/jquery/jquery.min.js" type="text/javascript"></script>
<script src="include/jquery/jquery-migrate-1.2.1.js" type="text/javascript"></script>

<link href="include/jquery/jquery-ui.css" type="text/css" rel="stylesheet"></link>
<link rel="stylesheet" type="text/css" href="include/jqplot/jquery.jqplot.css" />

<script src="include/jquery/jquery.cookie.js" type="text/javascript"></script>
<script src="include/jquery/jquery-href_post.js" type="text/javascript"></script>
<script src="include/js/help_sys.js" type="text/javascript"></script>
<script src="include/jquery/autocomplete/lib/jquery.ajaxQueue.js" type="text/javascript"></script>
<script src="include/jquery/autocomplete/lib/thickbox-compressed.js" type="text/javascript"></script>
<script src="include/jquery/autocomplete/jquery.autocomplete.js" type="text/javascript"></script>
<script src="include/jquery/jquery-ui.min.js" type="text/javascript"></script>
<script src="include/jquery/jquery.ui.datepicker.js" type="text/javascript"></script>
<script src="include/jquery/i18n/jquery.ui.datepicker-ru.js" type="text/javascript"></script>
<script src="include/jquery/i18n/jquery-ui-timepicker-addon.min.js" type="text/javascript"></script>
<script src="include/jquery/i18n/jquery-ui-timepicker-ru.js" type="text/javascript"></script>
<script src="include/jquery/jquery.color.js" type="text/javascript"></script>
<script src="include/jquery/jquery.select_fast_edit.js" type="text/javascript"></script>
<script src="include/jquery/jquery-dialog.js" type="text/javascript"></script>
<script src="include/jquery/jquery.mousewheel.js" type="text/javascript"></script>
<script src="include/ckeditor/ckeditor.js" type="text/javascript"></script>
<script src="include/ckeditor/adapters/jquery.js" type="text/javascript"></script>

<script type="text/javascript">
$(function() {
  $('#d124').datetimepicker({
		showOn:"button",
		showAlways: true,
		buttonImage: "images/calbtn.png",
		buttonImageOnly: true,
		buttonText: "Calendar",
		dateFormat: "dd.mm.yy",
		timeFormat: "HH:mm",
		showAnim: (('\v'=='v')?"":"show"),  // в ie не включаем анимацию, тормозит
  });
});
</script>
LABEL;


Но думаю, тут можно упростить. Поправьте, знающие люди.

#13 Dmitry506

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

  • Пользователи
  • PipPipPip
  • 30 сообщений
  • Пол:Мужчина
  • Город:Орел

Отправлено 25 Март 2015 - 17:48

Следом еще один вопрос:
Как поменять формат вывода даты на d.m.Y

#14 CbCoder

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

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

Отправлено 26 Март 2015 - 09:50

Где именно, не совсем понял?

#15 Dmitry506

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

  • Пользователи
  • PipPipPip
  • 30 сообщений
  • Пол:Мужчина
  • Город:Орел

Отправлено 26 Март 2015 - 10:19

В поле Статус, когда запись заносится уже в таблицу

$line['Статус'] = "Дата ".form_eng_time($_REQUEST['date']);


#16 CbCoder

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

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

Отправлено 27 Март 2015 - 09:23

Так у вас введенная дата приводится к внутреннему ("английскому") формату: form_eng_time($_REQUEST['date']). Просто не приводите к нему. Это актуально для полей с типом "дата", а не "текст".

#17 Dmitry506

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

  • Пользователи
  • PipPipPip
  • 30 сообщений
  • Пол:Мужчина
  • Город:Орел

Отправлено 27 Март 2015 - 09:35

Спасибо!

#18 Александр Пономарев

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

  • Пользователи
  • PipPipPip
  • 435 сообщений
  • Пол:Мужчина
  • Город:Таганрог

Отправлено 15 Март 2016 - 01:06

А что, реально все это нужно подключать для вывода календаря?

<script src="include/jquery/jquery.cookie.js" type="text/javascript"></script>
<script src="include/jquery/jquery-href_post.js" type="text/javascript"></script>
<script src="include/js/help_sys.js" type="text/javascript"></script>
<script src="include/jquery/autocomplete/lib/jquery.ajaxQueue.js" type="text/javascript"></script>
<script src="include/jquery/autocomplete/lib/thickbox-compressed.js" type="text/javascript"></script>
<script src="include/jquery/autocomplete/jquery.autocomplete.js" type="text/javascript"></script>
<script src="include/jquery/jquery-ui.min.js" type="text/javascript"></script>
<script src="include/jquery/jquery.ui.datepicker.js" type="text/javascript"></script>
<script src="include/jquery/i18n/jquery.ui.datepicker-ru.js" type="text/javascript"></script>
<script src="include/jquery/i18n/jquery-ui-timepicker-addon.min.js" type="text/javascript"></script>
<script src="include/jquery/i18n/jquery-ui-timepicker-ru.js" type="text/javascript"></script>
<script src="include/jquery/jquery.color.js" type="text/javascript"></script>
<script src="include/jquery/jquery.select_fast_edit.js" type="text/javascript"></script>
<script src="include/jquery/jquery-dialog.js" type="text/javascript"></script>
<script src="include/jquery/jquery.mousewheel.js" type="text/javascript"></script>
<script src="include/ckeditor/ckeditor.js" type="text/javascript"></script>
<script src="include/ckeditor/adapters/jquery.js" type="text/javascript"></script>

#19 CbCoder

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

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

Отправлено 15 Март 2016 - 10:04

Нет конечно. Далеко не все файлы тут от календаря. Я точно сам не знаю, но по логике скорее всего этого хватит:

<script src="include/jquery/jquery-ui.min.js" type="text/javascript"></script>
<script src="include/jquery/jquery.ui.datepicker.js" type="text/javascript"></script>
<script src="include/jquery/i18n/jquery.ui.datepicker-ru.js" type="text/javascript"></script>
<script src="include/jquery/i18n/jquery-ui-timepicker-addon.min.js" type="text/javascript"></script>
<script src="include/jquery/i18n/jquery-ui-timepicker-ru.js" type="text/javascript"></script>





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

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