我有一个奇怪的问题。
情况: 我有一个方法'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
我找到了问题的答案。 谢谢@RobertMaysJr。
如果未选中复选框,并且它是表单中的唯一字段,则表单将永远不会提交。
现在我知道我正在改变我将这样做的方式:)
答案 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