Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.07.2010, 19:03   #1
Krasi
Форумчанин
 
Регистрация: 12.02.2010
Сообщений: 787
По умолчанию Редактирование многих строк

Нужно сделать редактирование и создание строчек с некоторыми записями пользователя. По-моему, таблица должна выглядеть так: id записи, имя пользователя, запись. Вообще-то вместо записи должно стоять много столбцов, которые заполняет пользователь, но мы их пока сократим до одного. Насчет вывода все понятно. Далее представляю алгоритм редактирования. Мне надо вывести неограниченное число столбиков, в котором содержатся ячейки строки, а каждый столбик представляет собой целую строку. Все данные должны отправляться в скрипт на обработку без применения отдельных кнопок. Сначала я получаю все ячейки, в которых хранятся записи пользователя и вспомогательные данные к ним. Затем вывожу столбики с помощью таблицы, лупа в ней и столбиков таблицы в лупе. Теперь надо придумать, как сделать названия элементов формы. При разрешении этой проблемы (которое смутно, так как я хочу спать, представляется мне в том, что надо как-то добавить id в имена группы элементов, а потом сделать в php foreach перед запросом в бд). Потом "Добавить новые данные", if->java-> +1 elements_group, но с их названиями надо уже что-то придумать, так как id у предыдущих данных может быть разупорядочено вследствие их частой удаляемости, а в таблице стоит AI.
В итоге должна получиться страница, где выводится заполненные группы элементов, текстовых полей, которые можно все редактировать, потом отправлять одной кнопкой, а в бд занесутся либо старые значения, либо измененные.
Предложите, каким способом это еще можно реализовать, а если мой не такой уж и запутанный, то помогите мне с моим способом.
Krasi вне форума Ответить с цитированием
Старый 22.07.2010, 19:31   #2
Kostia
Участник клуба
 
Аватар для Kostia
 
Регистрация: 21.11.2007
Сообщений: 1,690
По умолчанию

Эээ, но почему бы не сделать таблицу записей
date | title | краткая инфо | копочки для редактирования
В кнопочках можно проделать такие фичи, как изменение позиции, редактирование и вставка новой записи. Юзаем ajax и все будет очень красиво и быстро
Когда жмем редактировать запись, то появляется окно(jquery) с формой куда уже занесены данные записи которую редактируем.
И еще, про smarty слыхали?
$smarty->assign('records',$records);
потом в template
{foreach from=$records item=$curr>
<td>{$curr.title}</td>
<td>$curr.info</td>
<td><a href='javascript:add({$curr.id},'{$ curr.title}','{$curr.info}')'>Добав ить</a></td>
</foreach>
Ну а потом в функции присваиваем значения соответствующим полям на форме и устанавливаем action для формы: .action="records.php?id="+id+"&edit =Y";
___
PS: По крайне мере я так всегда и делаю =)
Kostia вне форума Ответить с цитированием
Старый 23.07.2010, 03:40   #3
Johnatan
Antimoderаtoris
Участник клуба
 
Регистрация: 08.02.2008
Сообщений: 1,251
По умолчанию

Сломал глаза! Верните мне мои три минуты жизни! (((((

Цитата:
Мне надо вывести неограниченное число столбиков
Где-то вот тут ошибка в структуре. Я подозреваю что в слове "неограниченное", так как мы все с детства программирования знаем, что вертикальный список может быть неограниченным (например количество строк/записей), в то время как горизонтальный список (количество столбцов) должен быть жёстко структурирован, либо разбит на несколько вертикальных списков (нормализация).
В базе данных не может быть неограниченное количество столбцов. Если вы пытаетесь это реализовать - ваша идея ошибочна (либо она революционна и вы перевернёте всю теорию с ног на голову и докажете всему миру, что списки можно строить горизонтально, но я почему-то в этом сомневаюсь).

Хотя... может я что не так понял в этом борще букв... Тоже может быть...

З.Ы. для работы с HTML формами не забываем, что есть такая вещь как массив, так что все столбики фактически можно запихнуть в один массив.
<input type="text" name="massiv[]" ... />
98% из тысячи моих постов сделаны в профильном подфоруме. Я не накручиваю свои посты болтанием в "курилке", а ты?

Последний раз редактировалось Johnatan; 23.07.2010 в 03:43.
Johnatan вне форума Ответить с цитированием
Старый 23.07.2010, 13:44   #4
Krasi
Форумчанин
 
Регистрация: 12.02.2010
Сообщений: 787
По умолчанию

PHP код:
<input type="text" name="massiv[]" ... /> 
А как подробнее, и как их, эти массивы, потом получить?
Суть объясню по-другому. Есть таблица с пользователями. Но я создаю отдельно таблицу, куда включены, например, занятия пользователя. Ну, простейший случай примера, в профайле нужно видеть занятия пользователя в течение дня, например,
"6-00 - встаю,
8-00 - умываюсь
9-00 - ложусь спать".
В данном случае я создал бы две колонки в таблице, которые редактирует пользователь и 2, по которым можно сказать, что событие именно это и что оно принадлежит данному юзеру (id и username). Чтобы просто вывести, я беру массив значений первых двух столбцов, где имя пользователя = sessionuser и вывожу loop'om.
Я уже сделал это, но таблица все-равно пустая. Чтобы ее заполнить, нужно вставить туда эти две строки и автоматически добавить имя пользователя. Если пользователь просто будет добавлять в таблицу только по одной строке, то нужно написать form post, insert name='строгийтаймнэйм', insert name='строгийевентнэйм'. А потом принять строгие переменные, сделать INSERT. Но мне надо так: пользователь заходит, записей с его именем нет (проверилось) -> на странице вывелся только один массив из двух текстовых областей, кнопка "Добавить еще две текстовых области" и субмит. Под массивом я далее понимаю группу инсертовых полей (в примере их 2). При нажатии на "Добавить еще две текстовой области" массива становится два, пользователь может разом создать сразу две строки в бд. Потом пусть он добавил данные. Тогда они выводятся на той же странице редактирования в виде разделенных массивов, заполненных значениями из бд, + выводится пустой массив, заполнив который получим одну новую строку. Ну если и сейчас это трудночитаемо, то есть готовый пример: добавление мест, образований и тп во вконтакте.
Не знаю даже, с чего начать=)
Цитата:
Юзаем ajax
и ниже. До меня не доходит все-равно=)

Последний раз редактировалось Krasi; 23.07.2010 в 13:52.
Krasi вне форума Ответить с цитированием
Старый 23.07.2010, 16:08   #5
Johnatan
Antimoderаtoris
Участник клуба
 
Регистрация: 08.02.2008
Сообщений: 1,251
По умолчанию

Я сломал глаза ещё на предыдущем посте, так что я ничего не вижу и печатаю вслепую. Прошу прощения, что не могу помочь.
98% из тысячи моих постов сделаны в профильном подфоруме. Я не накручиваю свои посты болтанием в "курилке", а ты?
Johnatan вне форума Ответить с цитированием
Старый 26.07.2010, 21:24   #6
SkyM@n
Laravel/Vue expert
Старожил Подтвердите свой е-майл
 
Аватар для SkyM@n
 
Регистрация: 08.08.2007
Сообщений: 2,832
По умолчанию

Цитата:
Сообщение от Johnatan Посмотреть сообщение
Я сломал глаза ещё на предыдущем посте, так что я ничего не вижу и печатаю вслепую. Прошу прощения, что не могу помочь.
Аналогично. Автор, посты-поэмы не особо приветствуются.
SkyM@n вне форума Ответить с цитированием
Старый 27.07.2010, 20:37   #7
Krasi
Форумчанин
 
Регистрация: 12.02.2010
Сообщений: 787
По умолчанию

Совсем коротко и сердито: нужно сделать так, как тут: http://vkontakte.ru/editProfile.php?act=addresses
Krasi вне форума Ответить с цитированием
Старый 27.07.2010, 23:46   #8
SkyM@n
Laravel/Vue expert
Старожил Подтвердите свой е-майл
 
Аватар для SkyM@n
 
Регистрация: 08.08.2007
Сообщений: 2,832
По умолчанию

Цитата:
Сообщение от Krasi Посмотреть сообщение
Совсем коротко и сердито: нужно сделать так, как тут: http://vkontakte.ru/editProfile.php?act=addresses
вконтакте не зареган, сорри.
SkyM@n вне форума Ответить с цитированием
Старый 28.07.2010, 01:29   #9
Johnatan
Antimoderаtoris
Участник клуба
 
Регистрация: 08.02.2008
Сообщений: 1,251
По умолчанию

Цитата:
Сообщение от Krasi Посмотреть сообщение
Совсем коротко и сердито: нужно сделать так, как тут: http://vkontakte.ru/editProfile.php?act=addresses
Ну это уж как-то совсем коротко, потому что там количество полей очень даже ограничено.
Тип:
Страна:
Город:
Улица:
Номер дома:
Название:
Период с
по
Вот и всё.. Всего 8 столбцов. Очень даже ограниченная цифра.
Я бы сказал, что это ПРОСТО ОБЫЧНАЯ HTML ФОРМА.
Не вяжется с ТЗ
Цитата:
Мне надо вывести неограниченное число столбиков

З.Ы. О да, я зареган на вконтакте! О да, я посещаю его как минимум раз в неделю! Я больной человек, мне можно!
98% из тысячи моих постов сделаны в профильном подфоруме. Я не накручиваю свои посты болтанием в "курилке", а ты?
Johnatan вне форума Ответить с цитированием
Старый 28.07.2010, 13:15   #10
Krasi
Форумчанин
 
Регистрация: 12.02.2010
Сообщений: 787
По умолчанию

Количество полей, вместе обозначающих одно "место", ограничено, но тз в моей голове выглядит так, что нужно как раз добавлять неограниченное количество мест, а потом сохранять это неограниченное количество мест. Хотя это еще и с java, но php часть я тоже не знаю.
Цитата:
О да, я посещаю его как минимум раз в неделю! Я больной человек, мне можно
Я в контакте, ты в контакте, все в контакте, вконтакте точка ру :D Так по клубам типа народ вербуют?))
Krasi вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сводная таблица данных из многих файлов Excel Aleksandr-St Microsoft Office Excel 0 26.05.2010 13:48
У многих игр сейчас присутствуют клиенты, как организовать его? The Best Общие вопросы Delphi 8 30.07.2009 20:34
Циклически задать однотипные параметры для многих компонентов единого класса chandrasecar Общие вопросы Delphi 4 25.01.2009 00:18
Перенос данных из одной книги со многих листов в другую gavrylyuk Microsoft Office Excel 34 20.07.2008 21:39
С паскалем как и у многих проблемы,прошу помощи. Две задачи: интегральная и графическая. Loyal Помощь студентам 3 27.09.2007 09:46