I am developing an ordering page in PHP for some products. The user needs to be able to select multiple types of products, so checkboxes will be necessary in the HTML form.
I’ve established an array for the checkboxes via the “name” attribute.
My problem is, I want to display what the user has selected on a confirmation page, so I’d like the “value” of those checkboxes to ultimately return a product name AND a product price. As far as I can tell I’m going to be stuck with one value only, so I’ve attempted to get around this:
<?php
//variables for the array and the count
$parray = $_POST['product'];
$pcount = count($parray);
//arrays for each product's information; i've only listed one for simplicity
$br = array("Big Red", 575);
/*The idea for this was for each product ordered to add a line giving the product information and display it. When the $key variable is assigned, it is stored simply as a string, and not an array (yielding [0] as the first letter of the string and [1] as the second), which I expected, but my general idea is to somehow use $key to reference the above product information array, so that it can be displayed here*/
if (!empty($parray))
{
for ($i=0; $i < $pcount; $i++)
{
$key = $parray[i];
echo "<tr><td height='40'></td><td>" . $key[0] . "</td><td>" . $key[1] . "</td></tr>";
}
}
?>
Is there anyway to make my $key variable actually act as if it is the array’s name it is set to?
If not, is there any good way to do this?
So in your HTML table, you’ll need to render each checkbox like this:
where
$keyis the item number.Then, in your PHP, you’ll have a
$_POST["selectedIDs"]variable, which is an array of all the item numbers that were checked.Assuming you’ve got a product list array like this:
You can then print a list of the selected products using a loop like this:
The only real difference between this and what you wrote is that my
$productsarray is two-dimensional, and my$keyis used to grab the relevant product from the$productsarray.