QuickForm вызов Process в другом файле

WhiAmI

Новичок
QuickForm вызов Process в другом файле

Вот такая задача... Есть файл Search.php в котором создается и отображается форма
$lform=new HTML_QuickForm('link_form','post', null, null);
....
if ($link_form->validate()) $link_form->Process('go_process',false);
else $link_form->display();
...
function go_process($values){
...
showtable($sql,$options);
}
При отображении постраничного вывода используется фунция showtable из файла page_function.php
можно ли вызвать функцию go_process в другом файле чтобы потом работать только с таблицей результатов?
Или как-то по-другому нужно сделать,т. е. чтобы форма для поиска больше не отображалась. Спасибо.
 

crocodile2u

http://vbolshov.org.ru
во-первых, сразу вопрос: зачем поисковая форма передает данные ПОСТом?
во-вторых, в любых файлах ты волен вызывать что угодно.

ЗЫ: постарайся сформулировать свой вопрос понятнее.
 

WhiAmI

Новичок
$link_form=new HTML_QuickForm('link_form','post', 'result.php', null);
и перенес фнкцию go_process в файл results.php.
на 1. Поиск осуществляется по выбору из чекбоксов и списков. Я подумал нет принципиальной важности при передаче.
на 2.Для функции Process() передаю имя функции, и если она находится у меня в другом файле. как заставвить ее выполниться?
 

crocodile2u

http://vbolshov.org.ru
1. Передавая форму постом ты лишаешь пользователя возможности страницу результатов в закладки, отправить ссылку кому-либо еще, в общем это прсто неудобно.

2. Сделать так, чтобы интерпретатор знал о существовании этой функции в момент ее выполнения ( http://php.net/include ? )
 

WhiAmI

Новичок
1. Передавая форму постом ты лишаешь пользователя возможности страницу результатов в закладки, отправить ссылку кому-либо еще, в общем это прсто неудобно.
Принял на вооружение. Спасибо.
2. Сделать так, чтобы интерпретатор знал о существовании этой функции в момент ее выполнения ( http://php.net/include ? )
Мне пришлось отказаться от вызова метода Process. Так как я понимаю моя функция go_process() возвратит в метод Process, т.е в исходный файл. Проще передав упарвление в другой файл, проанализировать GET- переменные, записать их в массив SESSION и использовать при многократном постраничном выводе. При вызове поиска приходиться проверять переменные SESSION на существование и вызывать unset.
 

crocodile2u

http://vbolshov.org.ru
WhiAmI

По-моему, у тебя каша в голове.

"функция go_process() возвратит в метод Process, т.е в исходный файл" - это какое-то бессмысленное выражение.

Давай по пунктам разберемся, что ты хочешь сделать.

1. У тебя есть форма поиска. Данные из этой формы нужно провалидировать и, если они валидны, выдать пользователю страницу с результатами поиска, так?

2. Результатов может быть много, и поэтому нужно реализовать постраничную прокрутку, так?

3. Что происходит после сабмита формы? Мы попадаем на страницу search.php?var1=value1&var2=value2 - правильно?

4. Появляется постраничная прокрутка. Так что мешает сделать ссылки на страницы такого вида: search.php?var1=value1&var2=value2&page=number ?
 

WhiAmI

Новичок
Именно так...
Но после сабмита формы мы попадет на search.php в каком случае?
if ($link_form->validate())
$link_form->process('search',false); <--тут?
else
$link_form->display();
 

crocodile2u

http://vbolshov.org.ru
после сабмита формы мы попадет на search.php в том случае, если экшн твоей формы - search.php
 

WhiAmI

Новичок
если передавать в эшен формы файл search.php
то не происходит проверка на валидность((
а также
$link_form->process('go_process',false);??
функция go_process не выполняется
 

crocodile2u

http://vbolshov.org.ru
Ты же сам написал, что форма создается и отображается в этом файле. Обрабатывай ее там же - и дело с концом. а экшн у формы вообще можешь пустым оставить - придешь на тот же УРЛ, по которому зашел..
 
Сверху