Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 11.01.2019, 10:08
Новичок на форуме
Отправить личное сообщение для Екатерина_2404 Посмотреть профиль Найти все сообщения от Екатерина_2404
 
Регистрация: 10.01.2019
Сообщений: 9

да я согласна ,что поле лишнее было, но не могла разобраться, теперь все встало на свои места. спасибо большое за развернутый ответ. Буду пробовать, поняла в каком направлении работать!
Ответить с цитированием
  #12 (permalink)  
Старый 11.01.2019, 12:43
Новичок на форуме
Отправить личное сообщение для Екатерина_2404 Посмотреть профиль Найти все сообщения от Екатерина_2404
 
Регистрация: 10.01.2019
Сообщений: 9

Можно Вас попросить помочь еще раз. Вы написали вытягивать значения if( $_POST['set'] && $data = array_diff(array_map('intval', $_POST['set']), [0])) {
//массив $data будет содержать все значения выбранные во всех списках
}

Пытаюсь сделать пишет синтаксическая ошибка. Помогите вывести значения которые передаются. За ранее спасибо!
Ответить с цитированием
  #13 (permalink)  
Старый 11.01.2019, 12:57
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Какая именно ошибка? В версиях РНР до 5.4 нельзя объявлять массив как [], только array(). А вообще это лучше так записать:

if( $_POST['set'] && $data = array_filter(array_map('intval', $_POST['set']), function($v) {
        return $v;
    })) {
    //массив $data будет содержать все значения выбранные во всех списках
    
    echo '<pre>' .  print_r($data, 1) . '</pre>'; //это вывод чисто для посмотреть
}


Вот только чему в базе все это записываться будет, это вопрос.

Последний раз редактировалось laimas, 11.01.2019 в 13:00.
Ответить с цитированием
  #14 (permalink)  
Старый 11.01.2019, 13:04
Новичок на форуме
Отправить личное сообщение для Екатерина_2404 Посмотреть профиль Найти все сообщения от Екатерина_2404
 
Регистрация: 10.01.2019
Сообщений: 9

А как вы предлагаете хранить эти данные если потом это будет открываться на редактирование? Может я все усложняю?)) Это своего рода анкета, по заполнению так же будет формироваться рейтинг.
Ответить с цитированием
  #15 (permalink)  
Старый 11.01.2019, 13:14
Новичок на форуме
Отправить личное сообщение для Екатерина_2404 Посмотреть профиль Найти все сообщения от Екатерина_2404
 
Регистрация: 10.01.2019
Сообщений: 9

Массив объявлять array() у select где name ="set[]" ? у меня меньше версия оказывается....
Ответить с цитированием
  #16 (permalink)  
Старый 11.01.2019, 14:15
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от Екатерина_2404
А как вы предлагаете хранить эти данные если потом это будет открываться на редактирование?
Вы думаете я понимаю что это, для чего это, и почему оно так пишется? Анкета понятие резиновое, что за сим скрывается мне не ведомо. Но вот пример иного, что сути не меняет, и данные ваших анкет как то должны быть связаны.

Будем делать планировщика. Первое что нужно, это таблица в базе которая будет хранить основные (первичные) данные планировщика - даты задач. А задачи установленные для каждой даты будут писаться в связанную таблицу ежедневных задач, которая в свою очередь связана с таблицей самих задач - их описание, параметры...

Таблица планировщика scheduler - поле scheduler_date типа DATE первичное, поле scheduler_comment типа VARCHAR.

Таблица задач на день daily_tasks - поле daily_date типа DATETIME уникальное, поле daily_task типа MEDIUMINT.

Таблица задач tasks - поле tasks_task MEDIUMINT первичное с автоинкрементом, поле приоритета задачи tasks_priority типа ENUM со значениями "высокий,средний,обычный" , поле tasks_desc типа VARCHAR описания задачи.

Таблицу tasks можно сравнить в вашим списком. Прежде чем работать с планировщиком необходимо определить задачи, добавив их в таблицу. Это можно сделать обычной формой типа ка к у вас, в котором есть список построенный на параметрах типа поля tasks_priority и поля для ввода описания для поля tasks_desc. При записи этих данных в поле tasks_task таблицы будет формироваться уникальное значение, по которому эта таблица будет связана с таблицей daily_tasks. Таблицу задач можно редактировать - добавлять новые, удалять существующие, при этом при удалении нужно удалять и все записи удаляемой задачи из таблицы daily_tasks, то есть те, значение которых в поле daily_task равно значению tasks_task удаляемой задачи. В противном случае будет нарушена целостность данных.

Добавление задач в планировщик, это форма в которой строится список всех задач имеющихся в таблице tasks, то есть опции списка будут иметь значения из поля tasks_task и текст составленный из значений полей tasks_desc и tasks_priority. Вторым полем в форме будет календарь с возможность выбора даты и времени. При этом при добавлении в форму новых полей для определения еще задач, в добавляемых полях можно установить только время. То есть дата устанавливается единожды.

При сохранении этой формы в таблицу scheduler в поле scheduler_date пишется установленная дата, а в таблицу daily_tasks все задачи установленные, то есть в поле daily_date пишутся выбранная дата + каждое выбранное время, и соответственно для каждого времени значение выбранной задачи в поле daily_task.

Чтобы просмотреть все установленные задачи (вывести их на экран), выбираются все даты из таблица scheduler, все связанные по этой дате в поле daily_date таблицы daily_tasks значения поля daily_task, по которому из таблицы tasks выбираются описание и приоритеты задач. То есть это будет запрос с объединением LEFT JOIN.

Для удаления установленной задачи нужно на сервер передать значение ее даты/времени и удалить ее из таблицы daily_tasks для daily_date равное указанному дате/времени. А если нужно удалить все задачи дня, то нужно передать дату и удалить в таблице scheduler запись для scheduler_date равной указанной дате, и все записи из таблицы daily_tasks у которых значение поля daily_date имеет указанную дату.

Написано много и может быть не понятно, но это в общем-то все упрощено. Здесь есть связи, что позволяет производить с этими данными всевозможные операции. Если ваши анкеты связаны с их "душами", которые как-то где-то описаны, и данная форма как раз есть добавление анкеты такой "душе", форма как-то связана с этой душой по ее ID, то все нормально. Иначе ....

А список - если он не редактируемый, то проще его описать как массив в переменной.
Ответить с цитированием
  #17 (permalink)  
Старый 11.01.2019, 14:21
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от Екатерина_2404
Массив объявлять array() у select где name ="set[]" ?
Нет, в полях формы нужно указывать имя с добавлением [], иначе будет возвращено значение только последнего одноименного поля формы. Спискам multyple также к имени нужно добавлять [] по этой же причине. А об объявлении массива в РНР это тут http://php.net/manual/ru/language.types.array.php
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужна помощь "Эффект при наведении с помощью jQuery " vashsalat jQuery 2 07.05.2014 21:10
Событие при выборе элемента из выпадающего списка в input type="email" Алексей Горохов Events/DOM/Window 4 27.12.2013 10:38
При установке CSS для Body "overflow: hidden" съезжает верстка, в чем дело? Slevin Kelevra Общие вопросы Javascript 18 08.07.2012 20:27
Случайный CSS при обновлении (нужна помощь в редактировании скрипта) xsfd Общие вопросы Javascript 1 13.03.2011 01:03
удаление disabled при нажатии на элемент выпадающего списка deNSe_01 Events/DOM/Window 3 28.01.2011 10:49