INOY
Постоялец
Offline
|
|
« Ответ #90 : 21-04-2010 06:56 » |
|
если интересно, то вот сайт для которого это все делается, простой, без заморочек, его основная цель и есть автоматизация онлайн записи на прием, дабы хоть немного разгрузить телефонисток, которые работают в центре. ссылка cz.newtob.ru
|
|
« Последнее редактирование: 21-04-2010 07:02 от Sla »
|
Записан
|
|
|
|
INOY
Постоялец
Offline
|
|
« Ответ #91 : 21-04-2010 07:14 » |
|
Значит форма есть, не занятое время в бд записывается, занятое-незаписывается,.. Логически мысля(на сколько это возможно, т.к. в голове одни функции , переменные, теги..), нужно организовать запись в бд свободного времени.. но как это зделать? получится что время уже занято.. может нужно создать новую таблицу, в которую бы записывалась информация о свободном времени, а из нее в свою очередь бралась бы информация для элементов выбора в форме?? чет я запутался..
|
|
|
Записан
|
|
|
|
Sla
|
|
« Ответ #92 : 21-04-2010 07:29 » |
|
знаешь сколько тебе еще делать и думать?
Вот приблизительный план 1. Определяешься с промежутком времени (неделя, месяц) 2. Пишешь обработчик события onchage на селекте ввода даты и ajax-ом получаешь данные о не занятом времени 2.а не забываешь, что в субботу у тебя время работы укорочено (а в воскресенье?)
Ввод дата оставляй такой какой есть сейчас, это удобно для пользователей) и храни дату не в формате date, а в формате varchar. Формат хранения времени приема - тоже строковый.
Изменение формата хранения данных избавит тебя от функций преобразования строк в дату и время.
И тогда это будет законченный продукт.
Кроме того, чтобы уменьшить вероятность работы роботов нужно предусмотреть защиту от роботов (изучить работу каптчи (captcha) или придумать самому, самый простой способ - подтвердить введенную дату, например)
|
|
« Последнее редактирование: 21-04-2010 07:32 от Sla »
|
Записан
|
Мы все учились понемногу... Чему-нибудь и как-нибудь.
|
|
|
INOY
Постоялец
Offline
|
|
« Ответ #93 : 21-04-2010 07:39 » |
|
1. Определяешься с промежутком времени (неделя, месяц) 2. Пишешь обработчик события onchage на селекте ввода даты и ajax-ом получаешь данные о не занятом времени 2.а не забываешь, что в субботу у тебя время работы укорочено (а в воскресенье?)
Чет или я не пойму, или вам не правильно обьяснил.. зачем мне промежуток времени и все остальное, если у меня есть конкретные данные, что например, свободно в понедельник в 8:00 и в четверг в 13:00. Извиняюсь , если задаю глупые вопросы..
|
|
|
Записан
|
|
|
|
INOY
Постоялец
Offline
|
|
« Ответ #94 : 21-04-2010 07:43 » |
|
+ ко всему, скрипт или записи в бд, не сможет править администратор сам, без какой либо специальной формы,или упрощеной процедуры.
|
|
|
Записан
|
|
|
|
Sla
|
|
« Ответ #95 : 21-04-2010 08:09 » |
|
INOY, давай так.
01/01/2010 у тебя свободно время 08:00 и 13:00 02/01/2010 - 09:00 и 12:00 03/01/2010 - 09:00 11:00 13:00
Как ты сделаешь выбор времени, по какому критерию? Т.е. тебе нужно будет передавать данные о всем промежутке - а это большой трафик. и ненужная информация
В предложенном мною варианте ты избавляешься от этой необходимости. Можно обойтись и без аякса, но тогда нужно писать две формы и перегружать страницу. На первом этапе внедрения можно сделать и так Пример
ФИО Выбор даты Отправить
Фио (readonly) Дата (readonly) Время (полученное из базы и незанятое)
Получаем занятое время
select time from script where data=введенная_ дата
Формируем возможные значения времени в массив_времени, с учетом субботы
$maxH=19; if (веденная_дата == суббота) {$maxH = 15;} $i=0; $m = 0; for ($h=8; $h<maxH;$h++){ $ti = $h.':'.$m; Ищем вхождение $ti в массив_времени Если вхождения нет {$t_out[$i]=$ti;} } $ti нужно формировать с учетом лидирующего нуля. и т.д.
|
|
|
Записан
|
Мы все учились понемногу... Чему-нибудь и как-нибудь.
|
|
|
Sla
|
|
« Ответ #96 : 21-04-2010 08:16 » |
|
+ ко всему, скрипт или записи в бд, не сможет править администратор сам, без какой либо специальной формы,или упрощеной процедуры.
Ну... это ты уже сам... доделаешь. Как вариант, для первого запуска. Создаешь таблицу ID Фио Дата Время Отметка Заполняешь таблицу на определенный промежуток дат 01/01/2010 08:00 и т.д. Поля ФИО и Отметка оставляешь не заполненными (или отметка 0) при появлении записи на прием update соответствующих полей ФИО и Отметка (например 1) Выбираешь незанятое время select * from TABLE where отметка=0
|
|
|
Записан
|
Мы все учились понемногу... Чему-нибудь и как-нибудь.
|
|
|
INOY
Постоялец
Offline
|
|
« Ответ #97 : 21-04-2010 11:03 » |
|
Буду думать..
|
|
|
Записан
|
|
|
|
INOY
Постоялец
Offline
|
|
« Ответ #98 : 21-04-2010 13:00 » |
|
А можно ли сделать так, не в конкретно моем случае, а вообще?
<label>Выберите день</label> <select name="data" id="data"> <option>результат запроса (select data from TABLE where отметка=0)</option>
как результат поместить в <option>?
|
|
|
Записан
|
|
|
|
Sla
|
|
« Ответ #99 : 21-04-2010 13:06 » |
|
INOY, НЕЛЬЗЯ.
Запрос выполняется на сервере, а не на клиентской машине.
достучаться до результат запроса ($result) можно через функции mysql_fetch
Включай мозги. Ведь ты уже многое сделал.
|
|
|
Записан
|
Мы все учились понемногу... Чему-нибудь и как-нибудь.
|
|
|
INOY
Постоялец
Offline
|
|
« Ответ #100 : 21-04-2010 13:08 » |
|
INOY, НЕЛЬЗЯ.
Запрос выполняется на сервере, а не на клиентской машине.
достучаться до результат запроса ($result) можно через функции mysql_fetch
Включай мозги. Ведь ты уже многое сделал.
Видимо перегрел мозги то..
|
|
|
Записан
|
|
|
|
INOY
Постоялец
Offline
|
|
« Ответ #101 : 22-04-2010 07:06 » |
|
немогу врубиться как написать 2 формы.. точнее как во вторую форму вставить после подключения к бд и обработки запроса <option>Время (полученное из базы и незанятое)<option>.. я запутался совсем. Сроки поджимают а у мня еще ниче нет. хочу упростить все до максимума. Есть такая задумка: Форма 1: Вы можете записаться на прием, заполнив несложную форму: // нажимаем send, попадаем в форму 2) Форма 2: //Выполняется подключение к бд,отсылается запрос незанятого времени введите имя(.....) выберите время<option>незанятое время 1<option> <option>незанятое время 2<option> ( время хронится в базе как "17 марта 13:00", "17 марта 14:00""18 марта 12:00") чтоб не париться с Формируем возможные значения времени в массив_времени, с учетом субботы
$maxH=19; if (веденная_дата == суббота) {$maxH = 15;} $i=0; $m = 0; for ($h=8; $h<maxH;$h++){ $ti = $h.':'.$m; Ищем вхождение $ti в массив_времени Если вхождения нет {$t_out[$i]=$ti;} } $ti нужно формировать с учетом лидирующего нуля. и т.д. // нажимаем send_2, и отправляем введенные fio и время на емайл. Реально??? или я опять туплю?
|
|
|
Записан
|
|
|
|
Sla
|
|
« Ответ #102 : 22-04-2010 07:15 » |
|
рисуй две формы
1. Выбор Даты <form action='zapis.php> <select name="data">.... <input type="submit" ....
2. ФИО и время <form action='zapis2.php> <input fio> <input data readonly <input time <input submit
3. zapis.php выбираешь не занятое время и заполняешь option временем
4. zapis2.php записываешь данные
Делов на 1 час.
|
|
|
Записан
|
Мы все учились понемногу... Чему-нибудь и как-нибудь.
|
|
|
INOY
Постоялец
Offline
|
|
« Ответ #103 : 22-04-2010 08:24 » |
|
Допустим таким запросом я извлекаю из таблицы, некоторое множество данных, где отметка=0 $query = "select data from my_table where otm is null;";
$result = mysql_query($query); $record = mysql_fetch_array($result); Как сделать так что бы в <option> данные сортировались по id? Сейчас у меня, что и естественно , везде одни и теже значения <option><?php echo "$record[data]";?></option> // дата с отметкой=0, id= 7 <option><?php echo "$record[data]";?></option> // дата с отметкой=0, id= 9 <option><?php echo "$record[data]";?></option> // дата с отметкой=0, id= 15 <option><?php echo "$record[data]";?></option> // дата с отметкой=0, id= 16
|
|
|
Записан
|
|
|
|
Sla
|
|
« Ответ #104 : 22-04-2010 08:32 » |
|
$query = "select data from my_table where otm is null order by id;";
|
|
|
Записан
|
Мы все учились понемногу... Чему-нибудь и как-нибудь.
|
|
|
INOY
Постоялец
Offline
|
|
« Ответ #105 : 22-04-2010 09:01 » |
|
<?php $link = mysql_connect("localhost", "webtob", "xxxxx") or die("not connect");//соеденились mysql_select_db('script', $link) or die ('not sucesful'); $query = "select data from my_table where otm is null order by id;"; //результат записан в $result $result = mysql_query($query); $record = mysql_fetch_array($result); echo "'$record[data]'"; ?>
<html> <head> <title>TEST</title> </head> <body> <form action="" method="post"> <label>Ваше имя</label> <input name="fio" id="fio" type="text" size="24" /><br /> <label>Выберите день</label> <select name="data" id="data"> <option><?php echo "$record[data]";?></option> <option><?php echo "$record[data]";?></option> <option><?php echo "$record[data]";?></option> <option><?php echo "$record[data]";?></option> </select> <br /> <label>Выберите время</label> <select name="time" id="time"> <option>08:00:00</option> <option>09:00:00</option> <option>13:00:00</option> <option>14:00:00</option> </select> <br/> <input type="submit" id="send" name="send" value="Отправить"><INPUT type="reset" value="Сбросить"> </form> </body>
показывает также, одни и теже даты ..Где загвоздка? если пхп скрипт переношу в send.php, то вообще ничего не получается..
|
|
|
Записан
|
|
|
|
Sla
|
|
« Ответ #106 : 22-04-2010 09:06 » |
|
INOY, ты документацию читаешь? примеры смотришь? while ($row = mysql_fetch_array($result, MYSQL_NUM)) { printf("ID: %s Name: %s", $row[0], $row[1]); }
|
|
|
Записан
|
Мы все учились понемногу... Чему-нибудь и как-нибудь.
|
|
|
INOY
Постоялец
Offline
|
|
« Ответ #107 : 26-04-2010 12:06 » |
|
Sla, выражаю Вам огромную благодарность, за помощь в создании формы! У меня всё получилось,но если бы не Ваша помощь , пришлось бы заказывать на Фрилансе. Не знаю что еще сказать.. Говорю просто ОГРОМНОЕ СПАСИБО !!!
|
|
|
Записан
|
|
|
|
tomsoyar
Новенький
Offline
|
|
« Ответ #108 : 27-03-2012 18:50 » |
|
Sla, выражаю Вам огромную благодарность, за помощь в создании формы! У меня всё получилось,но если бы не Ваша помощь , пришлось бы заказывать на Фрилансе. Не знаю что еще сказать.. Говорю просто ОГРОМНОЕ СПАСИБО !!!
а сможешь скинуть готовый скрипт (если не жалко конечно), а то я читаю читаю, и не фига не понимаю))) если что то мой адрес tom--soier@mail.ru ЗАРАНЕЕ ОГРОМНОЕ СПАСИБО!!!
|
|
|
Записан
|
|
|
|
dubovik
Интересующийся
Offline
|
|
« Ответ #109 : 14-06-2012 13:24 » |
|
Можешь скинуть скриптик (если не жалко) на nekit-1994@mail.ruСпасибо !!!!!!!
|
|
|
Записан
|
|
|
|
Sla
|
|
« Ответ #110 : 14-06-2012 14:35 » |
|
Могу, но не кину. Есть вопросы? Welcome!
|
|
|
Записан
|
Мы все учились понемногу... Чему-нибудь и как-нибудь.
|
|
|
dubovik
Интересующийся
Offline
|
|
« Ответ #111 : 14-06-2012 17:14 » |
|
УХ, Как грубо !!!
|
|
|
Записан
|
|
|
|
RXL
|
|
« Ответ #112 : 14-06-2012 17:30 » |
|
dubovik, где грубо? Халявщиков не терпим. Желающие получить помощь работают сами.
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
Sla
|
|
« Ответ #113 : 14-06-2012 17:38 » |
|
автору поста понадобилось всего лишь 9 дней.
|
|
|
Записан
|
Мы все учились понемногу... Чему-нибудь и как-нибудь.
|
|
|
dubovik
Интересующийся
Offline
|
|
« Ответ #114 : 14-06-2012 18:06 » |
|
Sla, я с таблицами запутался !!!! мне бы тогда структуру базы просто на словах...
|
|
|
Записан
|
|
|
|
Sla
|
|
« Ответ #115 : 14-06-2012 18:19 » |
|
На данный момент, структура таблицы и базы не важны. Сначала нужно увидеть сущности. Форма ввода определит структуру БД
|
|
|
Записан
|
Мы все учились понемногу... Чему-нибудь и как-нибудь.
|
|
|
|
Sla
|
|
« Ответ #117 : 14-06-2012 18:48 » |
|
Наверное Давай начнем с самого начала. Постановка задачи : создать систему записи на прием к врачу. Исходные данные : Пациент Врач Дата ВремяПредварительное решение Клиентская часть: Форма записиСерверная часть: Обработчик формы.Я прошу пока Показать Форму записи или, даже более желательно, описать действия при записи на прием.
|
|
|
Записан
|
Мы все учились понемногу... Чему-нибудь и как-нибудь.
|
|
|
dubovik
Интересующийся
Offline
|
|
« Ответ #118 : 14-06-2012 19:13 » |
|
Человек заходит на страницу регистратуры, выбирает врача, выбирает СВОБОДНОЕ время и дату, и записывается на прием Добавлено через 2 минуты и 12 секунд:А, человек вводит свои личные данные.... Как сделать интерфейс, чтоб каждый врач видет своих пациентов на сегодня
|
|
« Последнее редактирование: 14-06-2012 19:15 от dubovik »
|
Записан
|
|
|
|
Sla
|
|
« Ответ #119 : 14-06-2012 19:18 » |
|
Человек заходит на страницу регистратуры, выбирает врача, выбирает СВОБОДНОЕ время и дату, и записывается на прием
Нет понятия человека Есть пользователь 1.Пользователь заходит на страницу ФОРМЫ записи 2. РЕГИСТРИРУЕТ (себя или кого-то) суть не меняется. 3. ВЫБИРАЕТ врача 4. ОТПРАВЛЯЕТ данные (записывается на прием) Вот приблизительно таких ответов я хочу от тебя.
|
|
|
Записан
|
Мы все учились понемногу... Чему-нибудь и как-нибудь.
|
|
|
|