Reputation: 10809
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
Upvotes: 1
Views: 7717
Reputation: 10067
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
Upvotes: 1
Reputation: 1815
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.
Upvotes: 1
Reputation: 9661
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"];
Upvotes: 2