表单按钮提交值不起作用

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