0

奇妙な問題があります。

状況: メソッド「post」を含むフォームがあります。そのフォーム内には、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に感謝します。

チェックボックスがチェックされておらず、フォーム内の唯一のフィールドである場合、フォームは送信されません。

今、私はこれを行う方法を変更していることを知っています:)

4

6 に答える 6

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>
于 2012-09-05T07:43:26.510 に答える
1

常に value="1" である必要があります - チェックボックスがチェックされていない場合、ブラウザによってまったく送信されません

于 2012-09-05T07:41:35.247 に答える
0

問題は、チェックボックスがチェックされている場合にのみキーmail_subscribeが存在することです。$_POST

したがって、コードは常に実行されるわけではありません。

于 2012-09-05T07:41:50.983 に答える
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
}
于 2012-09-05T07:45:48.953 に答える
0

チェックボックスの値をチェックする代わりに、送信ボタンをチェックします

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

そのチェックの代わりに

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

これにより、フォームの送信が保証されます。チェックボックスがオンの場合、コードのみが機能します

于 2012-09-05T07:46:26.493 に答える
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

于 2012-11-28T05:10:56.890 に答える