表单按钮提交值不起作用

时间:2017-05-02 19:41:50

标签: javascript php html forms post

我得到了以下表格,但它不起作用。我阅读了大量的例子,但无法理解我做错了什么.. 有人可以解释一下,为什么$ _POST ["选择"]不能工作? 我可以发布完整的代码,如果有必要,但我虽然它不需要..

<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> 

然后我得到了下一个文件2.php

<?php
echo $_POST["choice"];
$a = $_POST["choice"];
?>

但我得到以下内容 注意:未定义的索引:在第2行选择 注意:未定义的索引:第3行的选择

2 个答案:

答案 0 :(得分:0)

您将帖子显示为button类型。除非有人按下按钮,否则按钮类型不存在。如果您之前正在提交或允许ENTER导致提交,那么这是未定义的。

你可以把它放在choice1

的前面来测试
 <input type=hidden name=choice value='no button pushed'>

如果你看到了,那就发生了什么

答案 1 :(得分:0)

感谢大家的回答,似乎问题出现在以下javascript上,因为它阻止了其他按钮的提交。问题现在解决了

<script>
    $('form').submit(function (e) {
    var form = this;
    e.preventDefault();
    setTimeout(function () {
        form.submit();
    }, 1000); // in milliseconds

    $("<p>Delay...</p>").appendTo("body");
    });
    </script>