php _POST随机不起作用

时间:2012-09-05 07:39:49

标签: php forms post

我有一个奇怪的问题。

情况: 我有一个方法'post'的表单。 在该表单中,我有1个复选框和一个提交按钮。 当我按下提交按钮时,if语句将捕获post var isset。

问题: 当我按下提交按钮时,它随机不起作用。 所以我现在按它,它可以工作或不工作。

这是我用来捕捉帖子的代码

if ( isset ( $_POST['mail_subscribe'] )  ) {
    //My code here
}

以下是表单中的代码(我使用的是smarty)

<form action="/my/url.html" method="post">
    <input type="checkbox" name="mail_subscribe" class="mail_subscribe" id="{$var.graph1.ID}" {if $var.mailing == 1}checked="checked" value="0"{else}value="1"{/if} />
    <br /><br />
    <input type="submit" value="save" id="mailing_submit"/>
</form>

当我提交此表单时,它有时会起作用,而且往往不会。 如果你们需要更多信息,请告诉我。 我会尽快更新问题。

ANSWER

我找到了问题的答案。 谢谢@RobertMays​​Jr。

如果未选中复选框,并且它是表单中的唯一字段,则表单将永远不会提交。

现在我知道我正在改变我将这样做的方式:)

6 个答案:

答案 0 :(得分:2)

使用此...

if ( isset ( $_POST['mailing_submit'] )  ) {
    //My code here
}

<form action="/my/url.html" method="post">
    <input type="checkbox" name="mail_subscribe" class="mail_subscribe" id="{$var.graph1.ID}" {if $var.mailing == 1}checked="checked" value="0"{else}value="1"{/if} />
    <br /><br />
    <input type="submit" value="save" id="mailing_submit" name="mailing_submit"/>
</form>

答案 1 :(得分:1)

它必须始终为value =“1” - 如果未选中该复选框,则浏览器根本不会提交该文件

答案 2 :(得分:0)

问题是只有在选中复选框时,mail_subscribe中才会存在密钥$_POST

因此,代码不会一直执行。

答案 3 :(得分:0)

你的表单操作不应该有.php扩展名文件:

<form action="/my/url.php" method="post">
    <input type="checkbox" name="mail_subscribe" class="mail_subscribe" id="{$var.graph1.ID}" {if $var.mailing == 1}checked="checked" value="0"{else}value="1"{/if} />
    <br /><br />
    <input type="submit" value="save" id="mailing_submit" name="mailing_submit"/>
</form>

if ( isset($_POST['mailing_submit'])  ) {
  //your code here
}

答案 4 :(得分:0)

而不是检查复选框值检查提交按钮

if ( isset ( $_POST['mail_subscribe'] )  ) {
    //My code here
}

而不是检查

if ( isset ( $_POST['mailing_submit'] )  ) {
    //My code here
}

这将确保表单提交。 如果选中复选框,则只有您的代码可以使用

答案 5 :(得分:0)

使用此jquery更容易

$('#yourcheckbox').click(function(){
  if($(this).is(':checked')){
       $.post('http://your form action url',{your form data },function(result){
               alert(result);
       }
  }

});

我有随机发布数据方法,可以在发送过程中将所有表单数据替换为假数据 在这里阅读http://www.jackart4.com/article.html