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


Выбор даты во всплывающем окне


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

#1 TelecomMedia

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

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

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

Добрый день,

Как во всплывающем окне добавить атрибут выбора даты?

echo "<input type='datetime'   name='date' value='".$line['Когда перезвонить']."' >"; 

возвращает 0000-00-00 00:00:00 без выпадения календаря

#2 CbCoder

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

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

Отправлено 17 Апрель 2015 - 11:17

Используйте функцию form_local_time для нормального отображения даты:

echo "<input type='datetime'   name='date' value='".form_local_time($line['Когда перезвонить'])."' >";

Выпадающий календарь добавить сложнее. Тут нужно инструкцию писать, которой в готовом виде у нас пока нет. Но вроде на форуме были про это темы.

#3 TelecomMedia

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

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

Отправлено 17 Апрель 2015 - 11:41

Хорошо, я вас понял.
Сейчас дата отображается в нормальном виде.

А как добавить отображение времени и приплюсовать 3 дня к текущему времени?

#4 CbCoder

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

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

Отправлено 17 Апрель 2015 - 14:52

Цитата

А как добавить отображение времени

form_local_time($line['Когда перезвонить'], 1)

Цитата

и приплюсовать 3 дня к текущему времени?

Так вам текущее время или время из поля? Алгоритмы разные.

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

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

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

Отправлено 18 Апрель 2015 - 10:45

Просмотр сообщенияCbCoder (17 Апрель 2015 - 14:52) писал:

form_local_time($line['Когда перезвонить'], 1)



Так вам текущее время или время из поля? Алгоритмы разные.

А конструкция
form_local_time(strtotime($line['Когда перезвонить'])+3*24*60*60, 1);
сработает?
или надо
form_local_time(date("Y-m-d h:i:s",strtotime($line['Когда перезвонить'])+3*24*60*60), 1);
делать?
Тогда может проще сразу написать
date("Y-m-d h:i:s",strtotime($line['Когда перезвонить'])+3*24*60*60);
?

Сообщение отредактировал Александр Пономарев: 18 Апрель 2015 - 10:51


#6 CbCoder

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

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

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

Цитата

или надо
form_local_time(date("Y-m-d h:i:s",strtotime($line['Когда перезвонить'])+3*24*60*60), 1);
делать?

Да, этот вариант, если прибавление 3 дней требуется к полю "Когда перезвонить". Только "H" большая в формате.

Хотя, можно и проще сделать:
date("d.m.Y H:i:s",strtotime($line['Когда перезвонить'])+3*24*60*60)
т.е. сразу перевести в нужный формат без form_local_time

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

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

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

Отправлено 19 Апрель 2015 - 14:27

И то верно.

#8 TelecomMedia

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

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

Отправлено 21 Апрель 2015 - 10:31

Да, спасибо, все получилось.

А вариант с выпадающим календарем сильно сложен в реализации?

#9 CbCoder

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

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

Отправлено 21 Апрель 2015 - 11:45

Нет, не сильно. Вот пример реализации для всплывающих доп.действий от другого клиента: http://clientbase.ru...indpost&p=27624

Для невсплывающих окон все проще, т.к. нужные библиотеки как правило уже подключены: http://clientbase.ru...indpost&p=22630

#10 TelecomMedia

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

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

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

Да, спасибо впринципе все работает.
Только такой вопрос: как можно теперь в этом поле с календарем задать дату по умолчанию?

echo "Дата встречи <input id='d124' type='text' name='date' value='".date("d.m.Y H:i:s", time() + 60*60*24*3)."' >";

Такая конструкция не работает, дата отображается, но календарь пропал

#11 CbCoder

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

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

Отправлено 23 Апрель 2015 - 09:14

Именно так и задается, можете убедится на примере стандартных форм в программе. Скорее всего причина сбоя в другом. Проверьте ошибки JS в консоли браузера.

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

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

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

Отправлено 06 Май 2015 - 22:15

Не совсем так. У него тип поля "text", а для целей ввода даты лучше использовать тип data и time, если надо еще и время. И вот там если подставить дату в формате date("d.m.Y"), все получится.

Например


$d=date("Y-m-d", strtotime(date("Y-m-d H:i:s"))+2*24*60*60);
echo "<form>";
echo "<p><b>Назначить встречу на</b></p>";
echo "<p><input type='date' value='$d'/>";  
echo "<input type='time' value='12:00'></p>";
echo "<p><input type='submit' value='OK' formaction='' formtarget='output' ONCLICK='window.close()'></p>";
echo "</form>";

Тут дата берется послезавтра, время назначается на 12-00 по умолчанию и все это можно править в форме.

Сообщение отредактировал Александр Пономарев: 06 Май 2015 - 22:18


#13 CbCoder

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

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

Отправлено 07 Май 2015 - 09:28

Цитата

Не совсем так. У него тип поля "text", а для целей ввода даты лучше использовать тип data и time, если надо еще и время.

Это новые типы полей из HTML5, на момент разработки программы они еще не поддерживались повсеместно, поэтому у нас используется обычный тип "text" с JQuery календарем. Так что причина не в этом.

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

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

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

Отправлено 08 Май 2015 - 01:20

А вот с передачей введенной даты для сохранения в таблице опять проблемы. Уже раз опубликовали бы работающую форму ввода со всеми вариантами и встроенным механизмом извлечения результатов из HTML для сохранения средствами php в MySQL методом POST, а там каждый бы сам адаптировал. А то намаялся я уже с csrf и прочими нюансами.





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

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