Jump to content


Photo

Hidden Field Assistance


  • Please log in to reply
7 replies to this topic

#1 Accurax

Accurax
  • Members
  • PipPipPip
  • Advanced Member
  • 246 posts

Posted 23 May 2006 - 12:03 PM

Hi, this is a related subject to a previous post I made a few weeks back, But since the question is now become more specific, and, i also now know what i am trying to do, i felt it needed a new topic.

I am currently (still) trying to build this form to collect information to allow me to write CV's for people. You can see it [a href=\"http://members.lycos.co.uk/cmbtest\" target=\"_blank\"]here[/a].

Due to the fact that the form is going to be excedingly long, i need to break it down into several smaller chunks.
To do this i've decided to use hidden fields to store the info from the previous form page(s) and submitt them all together.

What im basically looking for (in an ideal world) is a decent tutorial on how to acomplish this. I've spent quite some time looking, and allthough i understand how to create hidden fields, and how to have them store the information im missing some more basic knowledge thats stopping me from geting started.

Currently, as you will see if you view my site <above>, I have a simple one page form with a submit button that $_POST 's the gathered information to my email inbox;

Now, in order to make the multiple page's work i think i need to do the following (confirmation appreciated)

1) Remove the Section of code that sends / formatts the email from all but the final page of the form.

2)Add a link from the first page to the second..... second to third etc, this will replace the "submit" button.

3)Code the hidden fields into all pages after the first.

4) Add the submitt button on the final page.

Assuming the above is methodically correct, i have a question;

*How do i get from page 1 to page 2 to page 3 etc .... is there a special method i must use... or will a simple link work?


Silly question really .... but there are probably more to come... to be fair its probably preferable if someone could point me at a decent turtorial dealing with hidden fields when applied to a multi-page form.... although it may be a somewhat specific requirement for a turorial [img src=\"style_emoticons/[#EMO_DIR#]/unsure.gif\" style=\"vertical-align:middle\" emoid=\":unsure:\" border=\"0\" alt=\"unsure.gif\" /]

Any and all hellp appreciated

#2 Orio

Orio
  • Staff Alumni
  • Advanced Member
  • 2,491 posts

Posted 23 May 2006 - 01:07 PM

If you use just a link to move to the next page, the info wont be sent.
What basicly you want to do is a set of forms, that "remmber" using hidden field.

Let's have an example of two pages (+one that sends the mail) that the first one asks for your name, and the second for your age:
First page will be a normal html page:
<html>
<head><title>page1.php</title></head>
<body>
<form action="page2.php" method="POST">
You name:<br>
<input type="text" name="name"><br>
<input type="submit" value="Continue">
</form>
</body>
</html>

The second page will get the the name from page1.php and "remmber" it using a hidden field. Then It'll ask for the age:
<?php
$name=$_POST['name'];
?>
<html>
<head><title>page2.php</title></head>
<body>
<form action="page3.php" method="POST">
You age:<br>
<input type="text" name="age"><br>
<input type="hidden" name="name" value="<?php echo($name); ?>">
<input type="submit" value="Continue">
</form>
</body>
</html>

Now, page3.php will recive both the age and the name, and can email them:
$name=$_POST['name'];
$age=$_POST['age'];
$subject="New CV";
$email="my@email.com";
$msg="New CV! \n Name: ".$name."\n Age:".$age."\n wants a CV";
mail($email,$subject,$msg);
echo("Mail sent. Thank you.");


Now as you see, you need to send the info from page to page with a form, and have it "remmbered" using hidden fields that PHP echos the last page's information into them.


Orio.
Think you're smarty?

(Gone until 20 to November)

#3 Accurax

Accurax
  • Members
  • PipPipPip
  • Advanced Member
  • 246 posts

Posted 23 May 2006 - 01:30 PM

[!--quoteo(post=376319:date=May 23 2006, 08:07 AM:name=Orio)--][div class=\'quotetop\']QUOTE(Orio @ May 23 2006, 08:07 AM) View Post[/div][div class=\'quotemain\'][!--quotec--]
Now, page3.php will recive both the age and the name, and can email them:
$name=$_POST['name'];
$age=$_POST['age'];
$subject="New CV";
$email="my@email.com";
$msg="New CV! \n Name: ".$name."\n Age:".$age."\n wants a CV";
mail($email,$subject,$msg);
echo("Mail sent. Thank you.");
Now as you see, you need to send the info from page to page with a form, and have it "remmbered" using hidden fields that PHP echos the last page's information into them.
Orio.
[/quote]

Wow, thanks mate,

Ive pretty much started recoding my form from scratch, as its easier to get my head around it that way. I can now manage to get the form to successfuly skip from page 1 - page2 - page3 .... but, on arrival at page 3 (on localhost), i get a funny message;
Warning: mail() [function.mail]: "sendmail_from" not set in php.ini or custom "From:" header missing in C:\wamp\www\test\practice forms\form3.php on line 32
Mail sent. Thank you.

I have basically inserted the code you suggested, but i have surrounded it with <? ... ?> tags, as it wouldnt work at all without them, is this correct?

Is the 3rd page meant to simply display a rundown of the filled in fields after posting them?

I think im getting there... i fear i may have been severly over-complicating things before.... just a little push pls [img src=\"style_emoticons/[#EMO_DIR#]/smile.gif\" style=\"vertical-align:middle\" emoid=\":smile:\" border=\"0\" alt=\"smile.gif\" /]


#4 Orio

Orio
  • Staff Alumni
  • Advanced Member
  • 2,491 posts

Posted 23 May 2006 - 06:19 PM

I dont really understand in these issues, but it seems that on of the php.ini (one of the basic files in a PHP server) settings are not right.

Maybe one of the Gurus here can help?

Orio.
Think you're smarty?

(Gone until 20 to November)

#5 Accurax

Accurax
  • Members
  • PipPipPip
  • Advanced Member
  • 246 posts

Posted 23 May 2006 - 07:18 PM

I think it was just an issue with wamp ... it works fine (over 2 pages) on my remote server [img src=\"style_emoticons/[#EMO_DIR#]/smile.gif\" style=\"vertical-align:middle\" emoid=\":smile:\" border=\"0\" alt=\"smile.gif\" /]

However, i have another little problem you might be able to help me with.

Im pretty sure its something ridiculously simple.... but after 2 hours i still cant get it working.. and im geting pretty ##~@. Bleep ... off [img src=\"style_emoticons/[#EMO_DIR#]/wink.gif\" style=\"vertical-align:middle\" emoid=\":wink:\" border=\"0\" alt=\"wink.gif\" /]

I need 4 pages to my form, i have them all coded out... now, and sorry if this is odd.

Form2 wil recieve data into its hidden fields from Form1

Form3 will recive from form2

Form4 will recieve from form3

but the data int being carried... so on Form3 for example, allthough the hidden fields exist the value is set to "" aka bugger all.

Surly the idea is to get the data to carry through from form 1 all the way to the end in order to process it ?

Any idea's? ... i can post the code if u need... please ask b4 i do as its quite long now [img src=\"style_emoticons/[#EMO_DIR#]/smile.gif\" style=\"vertical-align:middle\" emoid=\":smile:\" border=\"0\" alt=\"smile.gif\" /]

#6 Orio

Orio
  • Staff Alumni
  • Advanced Member
  • 2,491 posts

Posted 23 May 2006 - 07:30 PM

Yeah, some code will be good, its hard without the code.

Orio.
Think you're smarty?

(Gone until 20 to November)

#7 Accurax

Accurax
  • Members
  • PipPipPip
  • Advanced Member
  • 246 posts

Posted 23 May 2006 - 07:54 PM

Ok, ill do the code for form1,2 & 3 .... I assume the problem with from 4 is the same, so no need to repeat code unless u specifically need it.... do my bit for the bandwidth [img src=\"style_emoticons/[#EMO_DIR#]/laugh.gif\" style=\"vertical-align:middle\" emoid=\":laugh:\" border=\"0\" alt=\"laugh.gif\" /]

I have omitted unnessecary Html in the following code;

Form #1
            <form action="form2.php" method="POST">
               
              <div align="center">
  <table width="0" height="0" border="0" align="center" cellpadding="5" cellspacing="0" class="cvtable">
            <tr>
          <td height="35" class="topleft">&nbsp;</td>
          <td class="topright"><div align="center"><span class="style1">Please enter your information, click continue to proceed.</span></div></td>
          </tr>
          <tr>
          <td width="150"><p align="left"><b>Your First Name:</b></td>
          <td width="300"><input name="firstname" type ="text" size="15" maxlength="25"></td>
         
  </tr>
        <tr>
          <td width="150"><p align="left"><b>Your Middlename:</b></td>
          <td width="300"><input name="middlename" type ="text" size="15" maxlength="25"></td>
       
  </tr>
        <tr>
          <td width="150"><p align="left"><b>Your Surname:</b></td>
          <td width="300"><input name="surname" type ="text" size="15" maxlength="25"></td>
      
  </tr>
        <tr>
          <td width="150"><div align="center">
            <div align="left"><b>Your Sex:</b></div></td>
          <td width="300"><input name="sex" type="radio" value="male"/><b>Male</b>
                        <input name="sex" type="radio" value="female"/><b>Female</b></td>
      
  </tr>
        <tr>
          <td width="150"><div align="left">
            <div align="left"><b>Your Marital Status:</b></div></td>
          <td width="300"><input name="marital" type="radio" value="single"/><b>Single</b>
                        <input name="marital" type="radio" value="married"/><b>Married</b></td>
      
  </tr>
        <tr>
          <td width="150"><div align="left"><b>Number of Children:</b></div></td>
          <td width="300"><input name="children" type ="text" size="4" maxlength="2"></td>
      
  </tr>
        <tr>
          <td width="150"><div align="left"><b>Date Of Birth:</b></div></td>
          <td width="300">        
              <select name="month">
              <option>January
              <option>Febuary
              <option>March
              <option>April
              <option>May
              <option>June
              <option>July
              <option>August
              <option>September
              <option>October
              <option>November
              <option>December
                </select>
              
        <select name="day">
              <option>1st <option>2nd <option>3rd <option>4th <option>5th
              <option>6th <option>7th <option>8th <option>9th <option>10th
              <option>11th <option>12th <option>13th <option>14th <option>15th
              <option>16th <option>17th <option>18th <option>19th <option>20th        
              <option>21st <option>22nd <option>23rd <option>24th <option>25th        
              <option>26th <option>27th <option>28th> <option>29th <option>30th <option>31st
              </select>
              
        <select name="year">
              <option>1930 <option>1931 <option>1932 <option>1933 <option>1934 <option>1935 <option>1936 <option>1937 <option>1938 <option>1939
              <option>1940 <option>1941 <option>1942 <option>1943 <option>1944 <option>1945 <option>1946 <option>1947 <option>1948 <option>1949
              <option>1950 <option>1951 <option>1952 <option>1953 <option>1954 <option>1955 <option>1956 <option>1957 <option>1958 <option>1959
              <option>1960 <option>1961 <option>1962 <option>1963 <option>1964 <option>1965 <option>1966 <option>1967 <option>1968 <option>1969
              <option>1970 <option>1971 <option>1972 <option>1973 <option>1974 <option>1975 <option>1976 <option>1977 <option>1978 <option>1979
              <option>1980 <option>1981 <option>1982 <option>1983 <option>1984 <option>1985 <option>1986 <option>1987 <option>1988 <option>1989
              <option>1990 <option>1991 <option>1992 <option>1993 <option>1994 <option>1995 <option>1996 <option>1997 <option>1998 <option>1999
              <option>2000 <option>2001 <option>2002 <option>2003 <option>2004 <option>2005 <option>2006
            </select>        </td>
      
 
        <tr>
          <td>&nbsp;</td>
          <td>&nbsp;</td>
          </tr>
          
    <tr>
          <td class="bottomleft">&nbsp;</td>
          <td class="bottomright"><input name="submit" type="submit" value="Continue" />      </td>
          </tr>
       
</table>
  </p>
              </div>
    </form>
   
    <p align="center">&nbsp;</p>
  </div>
  <div class="clearer"></div>
</div>
<div id="divFooter"><a href="../../index.htm">Home</a> <a href="../../Business%20Services/Business.htm">Business</a> <a href="../../CVs/CV.htm">Cv services</a> <a href="../../Location/Location.htm">Location</a> <a href="../../Contact%20Us/ContactUs.htm">Contact Us</a> </div>
</body>
</html>

The above form passes the information into the hidden fields on number 2 without issue:

Form #2
    <?php
$firstname=$_POST['firstname'];
$middlename=$_POST['middlename'];
$surname=$_POST['surname'];
$sex=$_POST['sex'];
$marital=$_POST['marital'];
$children=$_POST['children'];
$month=$_POST['month'];
$day=$_POST['day'];
$year=$_POST['year'];
?>

    <input type="hidden" name="firstname" value="<?php echo($firstname); ?>">
    <input type="hidden" name="middlename" value="<?php echo($middlename); ?>">
    <input type="hidden" name="surname" value="<?php echo($surname); ?>">
    <input type="hidden" name="sex" value="<?php echo($sex); ?>">
    <input type="hidden" name="marital" value="<?php echo($marital); ?>">
    <input type="hidden" name="children" value="<?php echo($children); ?>">
    <input type="hidden" name="month" value="<?php echo($month); ?>">
    <input type="hidden" name="day" value="<?php echo($day); ?>">
    <input type="hidden" name="year" value="<?php echo($year); ?>">

<form action="form3.php" method="POST">

  <div align="center">
    <table width="" border="0" cellpadding="5" cellspacing="0" class="cvtable">
       <tr>
        <td class="topleft">&nbsp;</td>
        <td class="topright">&nbsp;</td>
        </tr>
      
    <tr>
        <td width="150"><p align="left"><b>Your Address:</b></td>
        <td width="300"><input name="address1" type ="text" size="40" maxlength="45"></td>
        </tr>
        <tr>
        <td width="150"><p align="left"></td>
        <td width="300"><input name="address2" type ="text" size="40" maxlength="45"></td>
        </tr>
        <tr>
        <td width="150"><p align="left"><b>Your Town:</b></td>
        <td width="300"><input name="town" type ="text" size="30" maxlength="25"></td>
        </tr>
        <tr>
        <td width="150"><p align="left"><b>Your Postcode:</b></td>
        <td width="300"><input name="postcode" type ="text" size="10" maxlength="12"></td>
        </tr>
        <tr>
        <td width="150"><p align="left"><b>Your Mobile No':</b></td>
        <td width="300"><input name="mobile" type ="text" size="20" maxlength="25"></td>
        </tr>
        <tr>
        <td width="150"><p align="left"><b>Your Home No':</b></td>
        <td width="300"><input name="home" type ="text" size="20" maxlength="25"></td>
        </tr>
        <tr>
        <td width="150"><p align="left"><b>Your Work No':</b></td>
        <td width="300"><input name="work" type ="text" size="20" maxlength="25"></td>
        </tr>
        <tr>
        <td width="150"><div align="center">
          <div align="left"><b>Prefered method of contact:</b></div></td>
        <td width="300"><input name="prefered" type="radio" value="mobile"/><b>Mobile</b>
                        <input name="prefered" type="radio" value="home"/><b>Home</b>
                      <input name="prefered" type="radio" value="work"/><b>Work</b>
            </td>
        </tr>
        <tr>
        <td width="150"><p align="left"><b>Your E-Mail:</b></td>
        <td width="300"><input name="email" type ="text" size="20" maxlength="50"></td>
        </tr>
        <tr>
        <td width="150"><div align="left">
          <div align="left"><b>Can We Send drafts / revisions to this email address?:</b></div></td>
        <td width="300"><input name="canmail" type="radio" value="yes"/><b>Yes</b>
                        <input name="canmail" type="radio" value="no"/><b>No</b></td>
        </tr>
        <tr>
          <td class="bottomleft">&nbsp;</td>
          <td class="bottomright"><input name="submit" type="submit" value="Continue" /></td>
        </tr>
    </table>

    
</div>
</form>    
    
    <p align="center">
  </div>
  <div class="clearer"></div>
</div>
<div id="divFooter"><a href="../../index.htm">Home</a> <a href="../../Business%20Services/Business.htm">Business</a> <a href="../../CVs/CV.htm">Cv services</a> <a href="../../Location/Location.htm">Location</a> <a href="../../Contact%20Us/ContactUs.htm">Contact Us</a> </div>
</body>
</html>

now, the information that is entered onto form #2 is passed correctly into the hidden fields on form #3... but the value's of the hidden fields from form #1 is not passed on;

Form #3
    
    <?php
$firstname=$_POST['firstname'];
$middlename=$_POST['middlename'];
$surname=$_POST['surname'];
$sex=$_POST['sex'];
$marital=$_POST['marital'];
$children=$_POST['children'];
$month=$_POST['month'];
$day=$_POST['day'];
$year=$_POST['year'];

$address1=$_POST['address1'];
$address2=$_POST['address2'];
$town=$_POST['town'];
$postcode=$_POST['postcode'];
$mobile=$_POST['mobile'];
$home=$_POST['home'];
$work=$_POST['work'];
$prefered=$_POST['prefered'];
$email=$_POST['email'];
$canmail=$_POST['canmail'];
?>

    <input type="hidden" name="firstname" value="<?php echo($firstname); ?>">
    <input type="hidden" name="middlename" value="<?php echo($middlename); ?>">
    <input type="hidden" name="surname" value="<?php echo($surname); ?>">
    <input type="hidden" name="sex" value="<?php echo($sex); ?>">
    <input type="hidden" name="marital" value="<?php echo($marital); ?>">
    <input type="hidden" name="children" value="<?php echo($children); ?>">
    <input type="hidden" name="month" value="<?php echo($month); ?>">
    <input type="hidden" name="day" value="<?php echo($day); ?>">
    <input type="hidden" name="year" value="<?php echo($year); ?>">
    
    <input type="hidden" name="address1" value="<?php echo($address1); ?>">
    <input type="hidden" name="address2" value="<?php echo($address2); ?>">
    <input type="hidden" name="town" value="<?php echo($town); ?>">
    <input type="hidden" name="postcode" value="<?php echo($postcode); ?>">
    <input type="hidden" name="mobile" value="<?php echo($mobile); ?>">
    <input type="hidden" name="home" value="<?php echo($home); ?>">
    <input type="hidden" name="work" value="<?php echo($work); ?>">
    <input type="hidden" name="prefered" value="<?php echo($prefered); ?>">
    <input type="hidden" name="email" value="<?php echo($email); ?>">
    <input type="hidden" name="canmail" value="<?php echo($canmail); ?>">

<form action="formend.php" method="POST">

  <div align="center">
    <table width="" border="0" align="center" cellpadding="5" cellspacing="0" class="cvtable">
       <tr>
        <td class="topleft">&nbsp;</td>
        <td class="topright">&nbsp;</td>
        </tr>
      
    <tr>
        <td width="150"><p align="left"><b>Your Address:</b></td>
        <td width="300"><input name="address1" type ="text" size="40" maxlength="45"></td>
        </tr>
        <tr>
        <td width="150"><p align="left"></td>
        <td width="300"><input name="address2" type ="text" size="40" maxlength="45"></td>
        </tr>
        <tr>
        <td width="150"><p align="left"><b>Your Town:</b></td>
        <td width="300"><input name="town" type ="text" size="30" maxlength="25"></td>
        </tr>
        <tr>
        <td width="150"><p align="left"><b>Your Postcode:</b></td>
        <td width="300"><input name="postcode" type ="text" size="10" maxlength="12"></td>
        </tr>
        <tr>
        <td width="150"><p align="left"><b>Your Mobile No':</b></td>
        <td width="300"><input name="mobile" type ="text" size="20" maxlength="25"></td>
        </tr>
        <tr>
        <td width="150"><p align="left"><b>Your Home No':</b></td>
        <td width="300"><input name="home" type ="text" size="20" maxlength="25"></td>
        </tr>
        <tr>
        <td width="150"><p align="left"><b>Your Work No':</b></td>
        <td width="300"><input name="work" type ="text" size="20" maxlength="25"></td>
        </tr>
        <tr>
        <td width="150"><div align="center">
          <div align="left"><b>Prefered method of contact:</b></div></td>
        <td width="300"><input name="prefered" type="radio" value="mobile"/><b>Mobile</b>
                        <input name="prefered" type="radio" value="home"/><b>Home</b>
                      <input name="prefered" type="radio" value="work"/><b>Work</b>
            </td>
        </tr>
        <tr>
        <td width="150"><p align="left"><b>Your E-Mail:</b></td>
        <td width="300"><input name="email" type ="text" size="20" maxlength="50"></td>
        </tr>
        <tr>
        <td width="150"><div align="left">
          <div align="left"><b>Can We Send drafts / revisions to this email address?:</b></div></td>
        <td width="300"><input name="canmail" type="radio" value="yes"/><b>Yes</b>
                        <input name="canmail" type="radio" value="no"/><b>No</b></td>
        </tr>
        <tr>
          <td class="bottomleft">&nbsp;</td>
          <td class="bottomright"><input name="submit" type="submit" value="Continue" /></td>
        </tr>
    </table>
   
</div>
</form>
        
    <p align="center">
  </div>
  <div class="clearer"></div>
</div>
<div id="divFooter"><a href="../../index.htm">Home</a> <a href="../../Business%20Services/Business.htm">Business</a> <a href="../../CVs/CV.htm">Cv services</a> <a href="../../Location/Location.htm">Location</a> <a href="../../Contact%20Us/ContactUs.htm">Contact Us</a> </div>
</body>
</html>

I hope that helps a little with solving this ... i figure that i must have something to do with the hidden fields not being posted to the next form... but i dont really see why [img src=\"style_emoticons/[#EMO_DIR#]/huh.gif\" style=\"vertical-align:middle\" emoid=\":huh:\" border=\"0\" alt=\"huh.gif\" /]

Thanks for your time mate... your help is really appreciated [img src=\"style_emoticons/[#EMO_DIR#]/smile.gif\" style=\"vertical-align:middle\" emoid=\":smile:\" border=\"0\" alt=\"smile.gif\" /]

#8 .josh

.josh
  • Staff Alumni
  • .josh
  • 14,871 posts

Posted 24 May 2006 - 12:52 AM

your hidden input types are not inside your form tags.
Did I help you? Feeling generous? Buy me lunch! 
Please, take the time and do some research and find out how much it would have cost you to get your help from a decent paid-for source. A "roll-of-the-dice" freelancer will charge you $5-$15/hr. A decent entry level freelancer will charge you around $15-30/hr. A professional will charge you anywhere from $50-$100/hr. An agency will charge anywhere from $100-$250/hr. Think about all this when soliciting for help here. Think about how much money you are making from the work you are asking for help on. No, we do not expect you to pay for the help given here, but donating a few bucks is a fraction of the cost of what you would have paid, shows your appreciation, helps motivate people to keep offering help without the pricetag, and helps make this a higher quality free-help community :)




0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users