Apr 17
Hate if or love it, forms are a daily part of a developers life. In this post I will show you a few ways to ease the pain.
Say we have this,
<form method="post"> Member id:<input id="memberid" /><br /> First name:<input id="firstname" /><br /> Last name:<input id="lastname" /><br /> Phone:<input id="phone" /><br /> Email:<input id="email" /><br /> <input type="submit" /> </form>
And we want to end up like this one below:
<form method="post"> Member id:<input name="memberid" value="<?=$_POST['memberid']?>" id="memberid" /><br /> First name:<input name="firstname" value="<?=$_POST['firstname']?>" id="firstname" /><br /> Last name:<input name="lastname" value="<?=$_POST['lastname']?>" id="lastname" /><br /> Phone:<input name="phone" value="<?=$_POST['phone']?>" id="phone" /><br /> Email:<input name="email" value="<?=$_POST['email']?>" id="email" /><br /> <input type="submit" /> </form>
So what do we do? We ask a little help from our mate, regEx.
We search for this
id="([a-z0-9_-]+)"
and replace with this
name="$1" id="$1"
. Now for values search for
name="([a-z0-9_-]+)"
and replace with
name="$1" value="<?=$_POST['$1']?>"
and bang! It’s done!
Now a little tip on how to convert those nasty
<select name="country"> <option value="Australia">Australia</option> <option value="Austria">Austria</option> <option value="Bahamas">Bahamas</option> .... </select>
to
<select name="country"> <option value="Australia" <?=$_POST['country']=='Australia'?' selected ':''?>>Australia</option> <option value="Austria" <?=$_POST['country']=='Austria'?' selected ':''?>>Austria</option> <option value="Bahamas" <?=$_POST['country']=='Bahamas'?' selected ':''?>>Bahamas</option> .... </select>
All you have to do is to replace
<option value="([A-Za-z0-9_ -]+)">([A-Za-z0-9_ -]+)</option>
with
<option value="$1" <?=$_POST['country']=='$1'?' selected ':''?>>$2</option>
Now only if designing forms with out tables was this easy