Template_flexy + QuickForm problem: hidden form field gets overwritten with bad value
| From: | Andy Crain | Date: | Sat, 02 Aug 2003 00:54:00 +0000 |
| Subject: | Template_flexy + QuickForm problem: hidden form field gets overwritten with bad value | ||
| Groups: | php.pear.general | ||
| Request: | Send a blank email to pear-general+get-6950@lists.php.net to get a copy of this message | ||
I am using DataObject and Template_flexy together and am having a
problem with-I think-Template_flexy's internal calls to QuickForm. Not
being very familiar with QuickForm I can't say that for certain, but
here's what's happening:
In a template file, e.g. index.html, I have hard-coded in HTML a basic
form (method=get) that contains a hidden form field named "search". In
addition, I have several links on this page that also pass a variable
called "search", but with different values from the form's search
variable. In my main script, e.g. index.php, I use a switch statement,
e.g. switch ($_GET['search']) {case 'link_clicked': do X; break; case
'form_submitted': do Y; break;} to build queries differently depending
on whether a user clicked a link or submitted the form. Now here's the
problem: Everything works fine until I (1) click a link, passing
$_GET['search']=link_clicked to index.php and reloading the page with
the appropriate query results, and then (2) submit the form, which
should pass $_GET['search']=form_submitted. The problem is that
QuickForm-I think-is taking my hidden form field, which is hard-coded in
the template as <input type="hidden" name="search"
value="form_submitted">, and rewriting it with the $_GET['search'] value
from the previous request, so it now appears in the source as <input
type="hidden" name="search" value="link_clicked">. Of course,
submitting
the form now wreaks all sorts of havoc on the script, as the switch
statement thinks it's processing for $_GET['search']=link_clicked but
has all the wrong variables, i.e. the variables that accompany post
requests.
Again, I'm not certain where the problem lies, but that's why I'm
writing, after more than half a day looking through QuickForm and trying
to figure out what's going on. Can anyone tell me if I'm on the right
track, or better, tell me how to stop my hidden form field value from
being overwritten? Is there some config setting or flag I can use to
tell Template_flexy not to call QuickForm, or to tell QuickForm to lay
off my simple little form-without modifying the base classes?
Thanks in advance,
Andy