|
|
24.08.2012, 19:30
|
|
nops
Группа 5а5
Зарегистрирован: 2009-01-05
Сообщений: 112
|
Доброго времени.
Появилась задача, сделать форму, при заполнении которой нужно сформировать заранее заготовленный документ и вставить в него, в нужные места данные из полей.
Я сделал так.
Добавляю форму доьавления, в ней создаю поля и вывожу нужный мне материал через форму: "дествия после добавления" в итоге у меня отображается страница со вставленными тегами полей $f_имя_поля
А хочу сделать универсально. Создаю новую страницу в скрытом разделе, в нужные места вставляю теги и в итоге вывожу эту страницу с заполненными тегами.
Вот как такое реализовать? У меня не получается.
|
|
|
25.08.2012, 08:20
|
|
Asiat
Аниматика
Зарегистрирован: 2005-12-12
Сообщений: 576
|
Для чего нужна "универсальность" и на каком именно этапе не получается?
Создали где-то страницу с шаблоном, в действии после добавления вызвали этот шаблон, записали в переменную, прогнали через eval (или str_replace, или что вам больше подойдет...), вывели.
|
|
|
25.08.2012, 18:50
|
|
nops
Группа 5а5
Зарегистрирован: 2009-01-05
Сообщений: 112
|
ну вот я создал страницу, в странице указываю в нужном месте тег $f_имя_поля и вывожу через c_list_class эту страницу, на которой вместо $f_имя_поля, должно выводиться содержимое поля.
Можете сказать как такое сделать, а то что-то у меня голова не доходит как это сделать, каша одна
|
|
|
26.08.2012, 07:42
|
|
Asiat
Аниматика
Зарегистрирован: 2005-12-12
Сообщений: 576
|
Вариант с заменами (не тестировался, навскидку).
1) В нужных местах шаблона проставьте псевдопеременные. Лучше не путать с переменными компонентов, чтобы каши не было. Один из общепринятых вариантов: %VAR1%, %VAR1%
2) В действии после добавления:
$shablon = s_list_class(...); //хотя проще такие вещи забирать прямым запросом, через $db->get_var или listQuery
//в массив замен загнать все нужные переменные
$trans = array("%VAR1%" => $f_VAR1, "%VAR1%" => $f_VAR1);
//ну, и куда-то вывести
echo strtr($shablon, $trans);
|
|
|
27.08.2012, 15:05
|
|
nops
Группа 5а5
Зарегистрирован: 2009-01-05
Сообщений: 112
|
Цитата:Вариант с заменами (не тестировался, навскидку).
1) В нужных местах шаблона проставьте псевдопеременные. Лучше не путать с переменными компонентов, чтобы каши не было. Один из общепринятых вариантов: %VAR1%, %VAR1%
2) В действии после добавления:
$shablon = s_list_class(...); //хотя проще такие вещи забирать прямым запросом, через $db->get_var или listQuery
//в массив замен загнать все нужные переменные
$trans = array("%VAR1%" => $f_VAR1, "%VAR1%" => $f_VAR1);
//ну, и куда-то вывести
echo strtr($shablon, $trans); Ух как забавно. Точно же, можно попробовать, может получится...
|
|
|
27.08.2012, 15:42
|
|
nops
Группа 5а5
Зарегистрирован: 2009-01-05
Сообщений: 112
|
Да, действительно работает.
|
|
|
28.08.2012, 15:45
|
|
nops
Группа 5а5
Зарегистрирован: 2009-01-05
Сообщений: 112
|
Тут всплыла проблемка:
Код:".$trans = array("%FIO%" => $f_fio, "%SERIA%" => $f_seria, "%NUMBER%" => $f_number, "%ADRESS%" => $f_adress, "%DOVNUMBER%" => $f_dovnumber);
echo strtr(s_list_class(130,162), $trans);"
когда документ отображается, в левом углу отображается надпись Array
как избавится незнаю
|
|
|
28.08.2012, 16:35
|
|
Asiat
Аниматика
Зарегистрирован: 2005-12-12
Сообщений: 576
|
Не особо понял про ". в начале кода и " в конце.
Вставьте просто внутри PHP, т.е. "; ...PHP... echo "
|
|
|
29.08.2012, 12:47
|
|
nops
Группа 5а5
Зарегистрирован: 2009-01-05
Сообщений: 112
|
Цитата:Не особо понял про ". в начале кода и " в конце.
Вставьте просто внутри PHP, т.е. "; ...PHP... echo " Упс, пардон, перепутал, точно...
там точку с запятой надо поставить, вот болван билн;)
|