【问题标题】:php _POST random not workingphp _POST 随机不工作
【发布时间】:2012-11-28 13:10:56
【问题描述】:

我有一个奇怪的问题。

情况: 我有一个带有“发布”方法的表格。 在该表单内,我有 1 个复选框和一个提交按钮。 当我按下提交按钮时,if 语句将捕获 post var 是否已设置。

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

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

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>

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

回答

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

当一个复选框没有被选中,并且它是表单内的唯一字段时,表单将永远不会提交。

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

【问题讨论】:

  • var_dump($_POST);将其放在接收 POST 的文件的顶部。
  • 不禁感谢您的评论

标签: php forms post


【解决方案1】:

使用这个...

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>

【讨论】:

  • 这对以太没有帮助,因为据我所知,根本没有提交表单。但是感谢您抽出时间回答:)
【解决方案2】:

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

【讨论】:

  • 谢谢。我完全忘记了这个事实。当我可以再次 XD thnks 时,我会接受你的回答 :)
【解决方案3】:

问题是mail_subscribe 的键只有在复选框被选中时才会存在于$_POST 中。

所以,代码不会一直执行。

【讨论】:

    【解决方案4】:

    你的表单操作不应该有 .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
    }
    

    【讨论】:

    • 不,不应该。我的应用程序使用 .htacces 重定向到 index.php。从那里开始应用程序。这样我就可以使用像 www.exemple.com/some/url/to/my/pages.html 这样的网址,并且 index.php 将开始加载正确页面的过程。
    【解决方案5】:

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

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

    而不是那个检查

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

    这将确保表单提交。 如果复选框被选中,那么只有你的代码可以工作

    【讨论】:

      【解决方案6】:

      使用这个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

      【讨论】:

        猜你喜欢
        • 2023-03-16
        • 1970-01-01
        • 2012-02-18
        • 2014-12-12
        • 2013-03-01
        • 1970-01-01
        • 1970-01-01
        • 2012-10-11
        • 1970-01-01
        相关资源
        最近更新 更多