不明白为什么单击输入按钮后没有设置$ _POST

JDe*_*age 0 php forms post

在没有提交按钮的表单的上下文中,我不明白为什么$ _POST变量没有设置.这是我的代码:

<?php
  $view="blablabla";
?>
<form class="" method='POST' accept-charset="UTF-8" action='index.php'>
<p>
  <textarea rows="4" cols="60" name='article' id='article' WRAP=SOFT>
    <?php
      echo $view;
    ?>
  </textarea>
</p>    
<p>
  <input type="button" name='do1' id='do1' value="do 1"/>
  <input type="button" name='do2' id='do2' value="do 2"/>
</p>
</form>

<?php
  var_dump("POST :",$_POST);
?>
Run Code Online (Sandbox Code Playgroud)

一旦我点击其中一个按钮,var_dump是否应该显示$ _POST的值?

Pra*_*ash 7

不,输入类型必须是submit(<input type="submit"/>)才能提交表单.必须将POST请求发送到您的PHP脚本,以便在$ _POST数组中填充任何值:)

编辑:他们不具有可提交,但在上面的代码中,与上的按钮没有外部触发的情况下,你需要提交按钮:)

对于您的多个按钮问题:

如果您在按钮单击时使用JavaScript/Ajax将POST请求发送到PHP,则需要执行类似的操作:

if (isset($_POST['x'])) {
    var_dump($_POST);
    exit;
}
Run Code Online (Sandbox Code Playgroud)

这样脚本就不会返回页面的HTML(即你的表单) - 如果你要张贴到另一个页面,这不是问题:)

下面是一些示例jQuery代码,用于在按钮单击时发送一些POST数据(不会给你确切的代码,你必须根据你的需要修改它!)

$('#my_button').click(function(){
    $.post('myfile.php', data, function(response) { //the var 'data' is the POST data you're sending
        // handle response here, the data being in the response variable 
    });
});
Run Code Online (Sandbox Code Playgroud)