I have a PHP page that displays the result of a MySQL query with radio buttons. This is inside a form. I want to pass the value of the selected radio button to the next page.
I know this is an easy one but I cant come right with the solution.
My code for the PHP Page is as follows:
<html>
<head>
</head>
<body>
<?PHP
$tenders="SELECT deliverydetails.deliveryid AS `deliveryid` , deliverydetails.collectionarea1 AS `dispatch` , deliverydetails.trailertype AS `trailer` , deliverydetails.collectiondate AS `collectiondate` , deliverydetails.collectiontime AS `collectiontime` , deliverydetails.destination1 AS `destination` , deliverydetails.arrivaldate AS `arrivaldate` , deliverydetails.arrivaltime AS `arrivaltime` , deliverydetails.route AS `route` , deliverydetails.deliverystatus AS `status` , deliverydetails.comments AS `comments` , deliverydetails.loadid1 AS `load` , loadsummaryview.`order number`AS `load1` , loadsummaryview.`number of cases` AS `cases` , loadsummaryview.`total weight`AS `weight` , loadsummaryview.`transport type`AS `transporttype` , deliverydetails.backhaul AS `backhaul` , deliveryhaulier.haulier AS `haulier`, costbyroute.cost as `cost` FROM deliverydetails, deliveryhaulier, loadsummaryview,costbyroute WHERE deliverydetails.loadid1 = loadsummaryview.`order number` AND deliveryhaulier.deliveryid = deliverydetails.deliveryid AND deliverydetails.deliverystatus ='tenderoffered' and costbyroute.id=deliverydetails.hauliercostbyrouteid and deliveryhaulier.haulier='$haulier' order by deliverydetails.deliveryid";
$tenderresult=mysql_query($tenders);
$count=mysql_num_rows($tenderresult);
?>
<form name="form1" method="post" action="viewtenderdetails.php">
<table border=1>
<tr>
<th> </th>
<th>Delivery Number</th>
<th>Route</th>
<th>Required Trailer</th>
<th>Number of Cases</th> <th>Weight of Load</th>
<th>Rate</th>
<th>Collection Point</th>
<th>Destination</th>
<th>Colleciton Date</th>
<th>CollectionTime</th>
<th>DeliveryDate</th>
<th>DeliveryTime</th>
<th>Backhaul</th>
<th>status</th>
<th>comments</th>
</tr>
<?php
while($rows=mysql_fetch_array($tenderresult)){
?>
<tr>
<td>
<input type="radio" name=check id=check value="<?php echo $rows['deliveryid']; ?>"></td>
<td><?php echo $rows['deliveryid']; ?></td>
<td><?php echo $rows['route']; ?></td>
<td><?php echo $rows['trailer']; ?></td>
<td><?php echo $rows['cases']; ?></td>
<td><?php echo $rows['weight']; ?></td>
<td><?php echo $rows['cost']; ?></td>
<td><?php echo $rows['dispatch']; ?></td>
<td><?php echo $rows['destination']; ?></td>
<td><?php echo $rows['collectiondate']; ?></td>
<td><?php echo $rows['collectiontime']; ?></td>
<td><?php echo $rows['arrivaldate']; ?></td>
<td><?php echo $rows['arrivaltime']; ?></td>
<td><?php echo $rows['backhaul']; ?></td>
<td><?php echo $rows['status']; ?></td>
<td><?php echo $rows['comments']; ?></td> </tr>
<?php
}
?>
<tr>
<td colspan=3>
<input name="ViewDetails" type="submit" id="ViewDetails" value="ViewDetails"></td>
</tr>
</table>
</form>
</body>
</html>
My next page(viewtenderdetails.php) then tries to echo the select deliveryid but fails to work correctly. the code is:
<html><head><title>Hulamin LOC
</title>
</head>
<body>
<?PHP
echo $_POST[check];
?>
</body>
</html>
How can I get the selected radio option from the first page onto the second page? Many Thanks, Ryan
Try putting quotation marks around the variable name declarations in both your HTML and PHP:
HTML:
<input type="radio" name="check" id="check" value="whatever" />
PHP:
echo $_POST["check"];
Code Looks fine. Refer below code for referance. try in one test.php
<?php
if($_POST)
echo $_POST['check'];
?>
<form name="frm" method="post">
<input type="radio" name="check" id="check" value="1"> 1
<input type="radio" name="check" id="check" value="2"> 2
<input type="radio" name="check" id="check" value="3"> 3
<input type="submit" name="Submit" />
</form>
Replace $_POST[check] with $_POST['check']
Thanks.
if there are more than one radio buttons in the form you can use :
<input type="radio" name="check[]" value="<?php echo $rows['deliveryid']; ?>"></td>
And then, on your result page:
echo implode(", ", $_POST['check']); //To see the list of checks selected