I have a form which contains up to 10 sets of radio buttons. The radio button provides an answer to a question. All questions are populated from a database and on completion, the database is updated with the fields user_id, question_number & answer_value. I am using an array but only one answer_value seems to pass to the form processor.
This is my code
<form action="new-answers.php" method="post" id="my_answer">
<div class="form-group">
<label class="radio-inline"><input name="answer_value[]" type="radio" required="required" value="1"> Totally false for me </label>
<label class="radio-inline"><input name="answer_value[]" type="radio" required="required" value="2"> Partially false for me </label>
<label class="radio-inline"><input name="answer_value[]" type="radio" required="required" value="3"> Indifferent/neutral </label>
<label class="radio-inline"><input name="answer_value[]" type="radio" required="required" value="4"> Partially true for me </label>
<label class="radio-inline"><input name="answer_value[]" type="radio" required="required" value="5"> Totally true for me </label>
This is what I'm using in the form processor page
if (isset($_POST['submit'])) {
$i=0;
$user=$_POST['user_id'];
$question=$_POST['question_number'];
$answer = $_POST['answer_value'];
// open the mysqli prepared statement globally
$stmt = $mysqli -> prepare('INSERT INTO answers (user_id,question_number,answer_value) VALUES (?, ?,?)');
function insertAnswer($user, $question, $answer) {
global $stmt;
// using prepared statement several times with different variables
if (
$stmt &&
$stmt -> bind_param('iii', $user, $question,$answer) &&
$stmt -> execute()
) {
// new answers added
}
}
}
Even when I try just echoing using
$answer = $_POST['answer_value'];
foreach($answer as $value) {
echo $value.'<br />';
}
I get only answer.