0

在没有提交按钮的表单的上下文中,我不明白为什么 $_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);
?>

一旦我单击两个按钮之一,var_dump 不应该向 $_POST 显示一个值吗?

4

1 回答 1

7

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

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

对于您的多个按钮问题:

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

if (isset($_POST['x'])) {
    var_dump($_POST);
    exit;
}

这样脚本就不会返回页面的 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 
    });
});
于 2012-11-06T23:35:12.697 回答