I have a form in my PHP page which is created by a loop through an array.
echo \'
I solved the issue by doing the following.
The guys above here all got me on the right track and couldn't have done it without them!
Changed
<input type="radio" name="size[]" value="'.$arr_get_product_details[$d]['size'].'">
<input class="qty" type="text" size="3" name="amount" value="1">
To
<input type="radio" name="size['.$d.']" value="'.$arr_get_product_details[$d]['size'].'">
<input class="qty" type="text" size="3" name="amount['.$d.']" value="1">
Also changed
if (isset($_POST['add_to_chart']))
{
$product_id = $_POST['product_id'];
$size = $_POST['size'][0];
$qty = $_POST['amount'];
}
To this
if (isset($_POST['add_to_chart']))
{
// Array ID key
$key = key($_POST['size']);
$product_id = $_POST['product_id'];
$size = $_POST['size'][$key];
$qty = $_POST['amount'][$key];
}
Works like a charm! Thank you all for your very helpful comments!
Radio buttons should all use the same name. Only the selected radio button value is submitted:
<input type="radio" name="Radiosize" value="'.$arr_get_product_details[$d]['size'].'">
then:
$size = $_POST['Radiosize'];
There is no need to look at it as an array - it isn't submitted as one. Radio Buttons are not like checkboxes in form processing.
Form code:
<input type="radio" name="size" value="'.$arr_get_product_details[$d]['size'].'">
<input class="qty" type="text" size="3" name="amount['.$arr_get_product_details[$d]['size'].']" value="1">
And then you will have value of size. And array of amounts with size keys.
$size = $_POST['size'];
$amount = $_POST['amount'][$size];
change
<input class="qty" type="text" size="3" name="amount" value="1">
to
<input class="qty" type="text" size="3" name="amount[]" value="1">
and then you will have 2 arrays that will have same size.
<?php
$size = $_POST['size'][0];
$amount = $_POST['amount'][$size];
?>