CincoPistolero Posted October 7, 2008 Share Posted October 7, 2008 Hi Everyone, I have a simple form that needs to capture form data and pass it over a couple pages before updating a database. I am not using sessions, nor does my client want to at this time. I can pass the basic <input type=text> data easily from page to page. My issue is I have two sets of checkboxes that I create from a db table. The user can select multiple checkboxes and it saves to sOpt[]. I need to know how I can pass that array over two pages and then update the db on the fourth page. Below is a simplified version of what I'm trying to do. Page1.php <form method=post action="page2.php"> <input type="text" name="first"> <input type="text" name="last"> <input type="submit" value="next"> </form> page2.php <head> <?php $first = $_POST['first']; $last = $_POST['last']; ?> </head> <form method="post" action="page3.php"> <input type="hidden" name="first" value="<?php $first; ?>"> <input type="hidden" name="first" value="<?php $last; ?>"> <!-- this code displays the checkboxes, I don't have any issues with this code --> <?php $max2=2; $query2="SELECT op.optPricesID, o.name FROM optPrices op, options o WHERE op.optionID = o.optionID AND op.drumTypeID=3"; $result2=@mysql_query($query2); $num2=mysql_num_rows($result2); if(empty($num2)){ $final2="\t<tr><td><center><span class='optTitles'>Nothing to Display</span></center></td></tr>\n"; }else{ while($row2=mysql_fetch_array($result2,MYSQL_NUM)){ $array2[]="<input type=checkbox name='sOpt[]' value=".$row2[0]."\">".$row2[1]; } mysql_free_result($result2); $final2="<tr>\n"; foreach($array2 as $thumbnail2){ if($counter2==$max2){ $counter2=1; $final2.="\n<tr>\n"; }else $counter2++; $final2.="\t<td align=\"left\" width=\"270\" height=\"20\"><span class='optTitles'>".$thumbnail2."</span></td>\n"; } if($counter2){ if($max2-$counter2){ $final2 .= "\t<td width=\"270\" height=\"20\"> </td>\n"; } $final2.="</tr>"; } } echo " $final2"; ?> <input type="submit" value="next"> </form> page3.php - this is where I get confused - This pages displays choices <head> <?php $first = $_POST['first']; $last = $_POST['last']; [b]...I'm not sure how to declare the array...[/b] </head> <form method="post" action="page4.php"> <input type="hidden" name="first" value="<?php $first; ?>"> <input type="hidden" name="first" value="<?php $last; ?>"> [b]...need to know how to declare the ARRAY for sending to next page...[/b] First Name: <?php echo $first; ?> Last Name: <?php echo $last; ?> OPtions: [b]...need to know how to list options here...[/b] <input type="submit" value="submit"> page4.php I'm pretty confident on how to insert into the db as long as I get the array setup correctly on page3.php thanks for any and all help. Quote Link to comment https://forums.phpfreaks.com/topic/127427-passing-array-data-from-page-to-page-to-page/ Share on other sites More sharing options...
F1Fan Posted October 7, 2008 Share Posted October 7, 2008 I would suggest using array names for your inputs on the first page, like this: <input type="text" name="firstpage[first]"> <input type="text" name="firstpage[last]"> ... and so on... Then just use a loop to create your hidden inputs on the second page: <?php foreach ($_POST['firstpage'] as $name=>$value){ echo "<input type='hidden' name='$name' value='$value'>"; } ?> Quote Link to comment https://forums.phpfreaks.com/topic/127427-passing-array-data-from-page-to-page-to-page/#findComment-659179 Share on other sites More sharing options...
CincoPistolero Posted October 7, 2008 Author Share Posted October 7, 2008 I don't quite understand the reply, can I get a few more details? thanks Quote Link to comment https://forums.phpfreaks.com/topic/127427-passing-array-data-from-page-to-page-to-page/#findComment-659473 Share on other sites More sharing options...
F1Fan Posted October 7, 2008 Share Posted October 7, 2008 OK, let's say this is the first page. In your code, you have two inputs named "first" and "last." So, using that example, I changed it to this: Page1.php <form method=post action="page2.php"> <input type="text" name="firstpage[first]"> <!-- using "firstpage[first]" as the name in place of "first" --> <input type="text" name="firstpage[last]"> <!-- similar name change --> <input type="submit" value="next"> </form> Now just use a loop to create your hidden inputs on the second page: page2.php <form method="post" action="page3.php"> <?php // this will grab all input values from anything named firstpage[*] and create hidden inputs with those names and values foreach ($_POST['firstpage'] as $name=>$value){ echo "<input type='hidden' name='$name' value='$value'>"; } ?> // ...the rest of your page2.php page here... Quote Link to comment https://forums.phpfreaks.com/topic/127427-passing-array-data-from-page-to-page-to-page/#findComment-659479 Share on other sites More sharing options...
CincoPistolero Posted October 8, 2008 Author Share Posted October 8, 2008 this did not work. Only the first checkbox displayed on page3.php page2.php - this brings my checkboxes in from the database if(empty($num)){ $final="\t<tr><td><center><span class='optTitles'>Nothing to Display</span></center></td></tr>\n"; }else{ while($row=mysql_fetch_array($result,MYSQL_NUM)){ $array[]="<input type=checkbox name='firstoptions[tomBassOpt]' value=".$row[0]."\">".$row[1]; } page3.php - with below code it only displays one checkboxes info foreach ($_POST['firstoptions'] as $name=>$value) { echo "$name $value<br>"; } Once again, for anyone new. I'm pulling data from a table that lists a dozen or so checkboxes with the same name(page2.php). I want to pass this array to a confirm page and display it(page3.php) then pass it again to a fourth page that will upload the array into a table(page4.php) Quote Link to comment https://forums.phpfreaks.com/topic/127427-passing-array-data-from-page-to-page-to-page/#findComment-659654 Share on other sites More sharing options...
CroNiX Posted October 8, 2008 Share Posted October 8, 2008 You could always serialize($_POST), store it in the database and on your final page retrieve it and unserialize() it. This would be so much easier if you could use sessions....whats your clients problem with sessions? Quote Link to comment https://forums.phpfreaks.com/topic/127427-passing-array-data-from-page-to-page-to-page/#findComment-659658 Share on other sites More sharing options...
CincoPistolero Posted October 8, 2008 Author Share Posted October 8, 2008 this is the first phase of an order form and he does not want the users to have to login. Can sessions be used without a login? Also, I don't want to send the array as a string into one row in a table. I want the array to create a new row for every option selected. Quote Link to comment https://forums.phpfreaks.com/topic/127427-passing-array-data-from-page-to-page-to-page/#findComment-659660 Share on other sites More sharing options...
CroNiX Posted October 8, 2008 Share Posted October 8, 2008 Of course sessions can be used without a login. As far as my serialize comment, I wasn't suggesting you store the data permanently that way. Just from form page to form page and then on your final page, retrieve the data, unserialize it, sanitize it, do error checking and store the final results in your database however you would like. Quote Link to comment https://forums.phpfreaks.com/topic/127427-passing-array-data-from-page-to-page-to-page/#findComment-659664 Share on other sites More sharing options...
F1Fan Posted October 8, 2008 Share Posted October 8, 2008 Keep in mind that only checked checkboxes will transfer from one page to another. Quote Link to comment https://forums.phpfreaks.com/topic/127427-passing-array-data-from-page-to-page-to-page/#findComment-659903 Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.