Ash - Thanks for correcting me [should I say us ;) ]. So, if my understandng is right, we should use # instead of the superglobal variable. David - Sorry to have written that. I was not aware of the implications of the grand old way of doing it. :) Regards, Shreyas On Mon, Jul 5, 2010 at 4:24 AM, Ashley Sheridan <ash@xxxxxxxxxxxxxxxxxxxx>wrote: > On Sun, 2010-07-04 at 18:23 -0400, David Mehler wrote: > > > Hello everyone, > > Thanks for your suggestions. > > For my variable in the value area of the text input field I enter > > > > value="<?php echo $name"; ?> > > > > Prior to this I assign the variable $name to: > > > > $name = stripslashes($_POST['name']); > > > > I hope this is correct. > > Sticky forms sounds exactly what i'm looking for. I've changed my > > action attribute to > > > > <?php echo $_SERVER['PHP_SELF']; ?> > > > > The first thing I do once the page is loaded is check whether or not > > submit is set, if it is not I display the form, which is in a function > > call. If submit is set I want to begtin validation, so i'm deciding to > > merge my two files in to one, I like this better. My question is say > > for example the name text field is not filled out but all the other > > required fields are how do I get the form to redisplay itself? I was > > thinking a location redirect, but this doesn't sound right. > > Thanks. > > Dave. > > > > > > On 7/4/10, Paul M Foster <paulf@xxxxxxxxxxxxxxxxx> wrote: > > > On Sun, Jul 04, 2010 at 01:57:01PM -0400, David Mehler wrote: > > > > > >> Hello, > > >> I've got a form with several required fields of different types. I > > >> want to have the php script process it only when all the required > > >> fields are present, and to redisplay the form with filled in values on > > >> failure so the user won't have to fill out the whole thing again. > > >> One of my required fields is a text input field called name. If it's > > >> not filled out the form displayed will show this: > > >> > > >> <input type="text" name="name" id="name" size="50" value="<?php > > >> echo($name); ?>" /> <br /> > > >> > > >> Note, I've got $_POST* variable processing before this so am assigning > > >> that processing to short variables. > > >> If that field is filled out, but another required one is not that form > > >> field will fill in the value entered for the name field. > > >> This is working for my text input fields, but not for either select > > >> boxes or textareas. Here's the textarea also a required field: > > >> > > >> <textarea name="description" id="description" cols="50" rows="10" > > >> value="<?php echo($description); ?>"></textarea> > > > > > > Textarea fields don't work this way. To display the prior value, you > > > have to do this: > > > > > > <textarea name="description><?php echo $description; ?></textarea> > > > > > >> > > >> What this does, if a user fills out this field, but misses another, it > > >> should echo the value of what was originally submitted. It is not > > >> doing this. Same for my select boxes, here's one: > > >> > > >> <select name="type" id="type" value="<?php echo($type); ?>"> > > >> <option value="0" selected="selected">-- select type --</option> > > >> <option value="meeting"> - Meeting - </option> > > >> <option value="event"> - Event - </option> > > >> </select> > > > > > > The "value" attribute of a select field won't do this for you. You have > > > to actually set up each option with an either/or choice, like this: > > > > > > <option value="0" <?php if ($type == 'meeting') echo > 'selected="selected"'; > > > ?>> - Meeting - </option> > > > > > > Since doing this is pretty tedious, I use a function here instead: > > > > > > function set_selected($fieldname, $value) > > > { > > > if ($_POST[$fieldname] == $value) > > > echo 'selected="selected"'; > > > } > > > > > > And then > > > > > > <option value="meeting" <?php set_selected('type', 'meeting'); > > > ?>>Meeting</option> > > > > > > HTH, > > > > > > Paul > > > > > > -- > > > Paul M. Foster > > > > > > -- > > > PHP General Mailing List (http://www.php.net/) > > > To unsubscribe, visit: http://www.php.net/unsub.php > > > > > > > > > > > $_SERVER['PHP_SELF'] is not to be trusted, and shouldn't be used as the > action of a form like this. > http://www.mc2design.com/blog/php_self-safe-alternatives explains it all > better than I can here, so it's worth a read, but it does list safe > alternatives. > > One thing I do when creating sticky select lists is this: > > $colours = array('red', 'green', 'blue', 'yellow', 'pink'); > > echo '<select name="colour">'; > for($i=0; $i<count($colours); $i++) > { > $selected = (isset($_POST['colour']) && $_POST['colour'] == > $i)?'selected="selected"':''; > echo "<option value=\"$i\" $selected>{$colours[$i]}</option>"; > } > echo '</select>'; > > Basically, this uses PHP to not only output the list from an array > (which itself can be populated from a database maybe) and select the > right option if it exists in the $_POST array and matches the current > option in the loop that's being output. > > Thanks, > Ash > http://www.ashleysheridan.co.uk > > > -- Regards, Shreyas Agasthya