jQuery

индекс
283,92

Заполнение формы одной строкой

Вчера невероятным образом слилась карма у одного хорошего человека, Setti. Он написал топик, но, к сожалению, не успел его опубликовать. Собственно вот он:

jQueryПонадобилось быстрое и простое решение для отображения формы с подстановкой введенных данных. Так нашелся jQuery плагин Populate. Его помощь трудно переоценить: HTML исходник формы не захламляется PHP кодом, а всю работу, помимо плагина, берет на себя всего лишь одна строка:

$("#myform").populate(<?php echo json_encode($_POST); ?>);

Так как работаю с фреймворком Kohana, то мой код выглядит следующим образом:

$("#myform").populate(<?php echo json_encode($this->post->as_array()); ?>);

Разумеется, подставлять можно не только post-данные. Любой ассоциативный массив, где в качестве ключей будут указаны имена полей вашей формы, подойдёт.

Пользуйтесь ;)

Если вы сочли топик интересным, все благодарности можете излить автору в карму. Желательно изливать бабочками, конечно же.
UPD: Привет минусующим. Отмечайтесь в комментариях, будьте добры. Просто интересно, чем лично я вам не угодил. Я не истеричка, минусовать в ответ не буду, гарантирую.
+11
2 октября 2009, 12:19
59

комментарии (42)

+15
homm #
Мне кажется не правильным перекладывать на JS то, что должно работать и без него.
+2
Setti #
в моем случае это делалось для админки
0
conturov #
Советую это решение:
dklab.ru/lib/HTML_FormPersister/

Легкое и гибкое.
0
developer #
да и к тому же проверенное уже на тоннах кода.
+2
BaHbka #
не помешал бы линк на рабочий пример
+2
homm #
0
kenoko #
А в примере с кирилицей не всё так хорошо, как хотелось бы. Ну да ладно.
+1
sayber #
Спасибо! Полезная вещь, то что сейчас мне и нужно.
+11
davv #
плохо, что если, например, какой-то баннер задержит загрузку страницы, то человек начнет что-то делать с формой, а потом вдруг она проснется и подставит свои значения вместо того, что он так старательно вводил
+1
Ryotsuke #
Ну так заполнять форму надо по окончании загрузки DOM дерева, а не дожидаться всех картинок :)
0
Ryotsuke #
Хотя я не спорю, что это минус JS подхода. Просто его можно свести к минимуму.
0
Ryotsuke #
И (простите за тучу комментов) в Ajax приложениях этот минус так же теряется.
+1
kykapa4a #
Юзайте Zend_Form (или любой другой класс для работы с формами). Там есть аналогичный метод populate.
0
Gibbzy #
ну да только форму придётся описывать классом, не все в это въедут слёту
0
kykapa4a #
Зато когда въедешь, то управлять таким кодом намного проще (совмещать формы, выводить и т.п.).
0
pxx #
Только вот с канонами MVC такой метод, на сколько я знаю, не очень сочетается.
Формы для слоя View, но никак не контроллера.
+1
twistedfall #
dklab.ru/lib/HTML_FormPersister/ тоже самое, только на стороне сервера
+1
zerkms #
почему этим не занимаются хелперы генерации полей формы?
+1
predtech #
Честно говоря, какой-то сумбурный топик. Создается впечатление, что автор налабал его «от балды» за 5 секунд. Например "… с подстановкой введенных данных". Каких, блин, данных? В общем, лично для себя ничего интересного не нашел.
0
maddogg #
очень спорное решение. Обычно подобным должен заниматься движек. И обычно это делается вызовом одной функции одного класса формы
НЛО прилетело и опубликовало эту надпись здесь
0
folone #
Угу, и Courage Wolf`ом обрамить.
0
Powerslave #
Помог поднять самоуверенность Setti за топик =))
+1
crocodile2u #
> Понадобилось быстрое и простое решение для отображения формы с подстановкой введенных данных.
Понадобилось немного сломать мозг, чтобы понять, что же имеется в виду.

Но плагин полезный — бывают случаи, когда форма уже создана, но данные в нее нужно загрузить откуда-то. Например, есть список элементов, которые нужно редактировать. По клику на элемент открываем «окошко» с формой, которая отрисована заранее — и делаем ей «populate()» нужными данными. Правда, reset() не будет работать должным образом.

В целом — спасибо, плюсанул.
0
woodoo #
Достаточно редкий случай когда эту форму необходимо подгружать заранее, ведь есть ajax. Но всё-равно спасибо за инфу, буду иметь на вооружении =)
0
Kain_Haart #
Вы предлагаете через ajax забирать весь html формы?
ИМХО Как раз в случае использования ajax тема топика актуальна — забираем с сервера только данные и заполняем форму на стороне клиента с ппомошью javascript.
–4
ScREW #
Мне ваша розовая кофточка не нравится.
0
kenoko #
Я конечно люблю всех кто из Новосибирска, но откровенно неадекватных людей, откуда бы они не были — не люблю.
+2
ScREW #
Писать было лень, ну да ладно.
Пост ниачём. Лично у меня сложилось впечатление, которое я никому не навязываю, что человек просто клянчит карму и первое, что пришло ему в голову — это взять произвольный плагин с сайта jquery.com и написать про него 3 строчки. Разговоры про карму занимают 30% и без того очень короткого поста.
Так я поадекватнее выгляжу?
–2
folone #
Я как-то совсем забыл подумать, прежде чем упоминать это слово из пяти букв всуе, простите.
–2
analytic #
>> излить автору в карму

о, какой ппц, в жизни также унижаетесь просьбами? Неужели для вас эта виртуальщина реально что-то значит в жизни?
0
folone #
лол, простите, где просьба?
"Если вы сочли топик интересным, все благодарности можете излить автору в карму."
В жизни так же выдёргиваете из контекста?
+1
no_smoking #
А разве не видно, что этот Троль просто хочет получить еще пару минусов, в свою карму
–1
analytic #
Нищие тоже иногда стоят с протянутой рукой и ничего не говорят, но ведь мы все отлично понимаем их нужды, не так ли?
–1
folone #
откуда такие ассоциации с реальным миром? для вас же, вроде бы, «эта виртуальщина» ничего не значит, нет?
–2
analytic #
Я в России живу и нищим подаю всегда.

Может и вам подадут, виртуально, конечно.
0
folone #
Не забудьте в грудь себя ударить и «Горжусь Россией» дописать. И читать повнимательней: я про свою карму ни словом не обмолвился. Удачи.
0
akamuza #
ИМХО:
Для общего развития полезно, но о минусах JS подхода уже упомянули.

По-моему, более правильным подходом будет делать это средствами фреймворков или на крайний случай просто «голым» php.
0
aokolovich #
пасиб, как раз искал нечто подобное, давно хотел уйти от попап форм
+1
egorinsk #
Руки бы вам отрывать, мастеры-ломастеры, вы бы изучили в принципе как вообще формы принято делать, основы бы почитали, а то современная молодежь только и способна что джейквери воткнуть да пару строк написать. Мало того, что извращаетесь сами, еще и других пытаетесь научить.

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

p.s А что, в Кохане нет средства для работы с формами?
0
corristo #
хорошо все в кохане с формами ;)
0
ibnteo #
Минус этого решения в том, что при изменении данных в форме, отправке её, и возврате назад, мы теряем то что вносили.

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