I got the following form but it dont work.I read plenty of examples but cant understand what I do wrong.. Can someone explain me please why $_POST["choice"] don't work? I can post whole code if nessesary but I though it dont need..
<form action="2.php" method="POST">
<div class="question">
<?=$question?>
<div class="inline">
<div class="choice1">
<button type="submit" name="choice" class="choice" id="1" value="<?=$ans_array[0]?>" onclick="myFunction()" ><?=$ans_array[0]?></button>
</div>
<div class="choice2">
<button type="submit" class="choice" id="2" name="choice" onclick="myFunction()" value="<?=$ans_array[1]?>"><?=$ans_array[1]?></button>
</div>
</div>
<div class="inline">
<div class="choice1">
<button type="submit" class="choice" id="3" name="choice" onclick="myFunction()" value="<?=$ans_array[2]?>"><?=$ans_array[2]?></button>
</div>
<div class="choice2">
<button type="submit" class="choice" id="4" name="choice" onclick="myFunction()" value="<?=$ans_array[3]?>"><?=$ans_array[3]?></button>
</div>
</div>
</div>
</form>
and then i got the next file 2.php
<?php
echo $_POST["choice"];
$a = $_POST["choice"];
?>
but I get the following Notice: Undefined index: choice in on line 2 Notice: Undefined index: choice in on line 3
Thanks everyone for your answers it seemed the problem was on the following javascript as it was blocking the submit from the other buttons.Problem is solved now
<script>
$('form').submit(function (e) {
var form = this;
e.preventDefault();
setTimeout(function () {
form.submit();
}, 1000); // in milliseconds
$("<p>Delay...</p>").appendTo("body");
});
</script>
You show the post as a button
type. Button type do not exist unless someone pushes the button. If you are doing a submit earlier or allowing ENTER
to cause a submit then that is undefined.
You can test this by putting this right in front of choice1
<input type=hidden name=choice value='no button pushed'>
And if you see that, then that's what happened