Re: TrackSubmit question

From: Date: Fri, 27 May 2005 21:40:55 +0000
Subject: Re: TrackSubmit question
Groups: php.pear.general 
Request: Send a blank email to pear-general+get-19393@lists.php.net to get a copy of this message
That makes sense now. I've re-written the form as one page with two forms, as shown below, and it works like a champ. Thank you! form.php ----- <?php // Load the QuickForm code require "HTML/QuickForm.php"; $form1 = new HTML_QuickForm("form1", null, null, null, null, true); $form2 = new HTML_QuickForm("form2", null, null, null, null, true); $form1->addElement("text","entered_text","Enter some text"); $form1->addRule("entered_text","You must enter text","required"); $form1->addElement("submit","submit","Submit"); $valid = $form1->validate(); If ($valid) { $form2->addElement("static",null,"You Entered :". $_POST["entered_text"]); $form2->addElement("submit",null,"Reset"); $valid = $form2->validate(); If ($valid) { } $form2->display(); } else { $form1->display(); } ?> On May 27, 2005, Justin Patrin wrote: > > On 5/27/05, Lionel Worman <lworman@wittenberg.edu> wrote: > > I'm having some trouble working with the $trackSubmit option of > > HTML_Quickform. The documentation mentions the following about it: > > > > "boolean $trackSubmit > > > > (optional) Whether to track if the form was submitted by adding a > > special hidden field. If the name of such field is not present in the > $_GET > > or $_POST values, the form will be considered as not submitted. " > > > > 1st Question: is meant by adding a special hidden field, and how do I > take > > advantage of it? > > trackSubmit automatically puts a hidden value in the form and the form > won't validate if that value isn't in the submitted values. You don't > have to do anything special to use it. It's mostly there so that you > can have 2 forms on one page so that QF can know which one was > submitted. > > > > > 2nd Question: I've set up the following page so that it requires > something > > be typed into the Text field entered_text. If the form is valid it > should > > post to the next page (form2.php). The problem is that as long as I have > it > > POST or GET to another page, it skips the validation. It skips the > > validation no matter what I put in for tracksubmit. > > Well, this is because you're posting to form2.php, which doesn't check > to see if form1.php is valid. PHP scripts are run completely, the > output is sent to the browser, and the browser sends a response back. > In this case, the browser is sending the response to form2.php, which > isn't dealing with the submit of the first form. > > A better solution would be to leave the action alone and let the form > submit to the page that created it (this is the "right" way to do it). > Then the validation will work. If the form validates, process the > data, then redirect to the second for with a header('Location: > http://...'); > > -- > Justin Patrin >

« previous php.pear.general (#19393) next »