0

<form>次の場合に自動的に送信したい:

if(isset($_POST['action']) && ($_POST['action'] =='confirmado')){

フォームを送信します。

JavaScript スクリプトを使用する必要があるかどうかわかりません。これを試してみましたが、うまくいきません。

<script>

    if(isset($_POST['action']) && ($_POST['action'] =='confirmado')){
    $("#form").submit(function(){
    document.form.submit(); 
    return false;
    }

</script>
4

4 に答える 4

3

server-side languageであるPHPと。であるJavascriptを混同しようとしていclient-side languageます。だから、それはうまくいきません。

さらに、aの<form>送信は、$_POST配列に$POST['action']としてキャプチャされません。送信方法は次のとおりです。配列にはPOST$_POSTフォームのhtml要素を介して送信されたデータが含まれます。

于 2012-11-19T19:44:50.050 に答える
1

これを試して:

$( '#form' ).submit(function () {
    if ( this.action !== 'confirmado' ) return false;
});
于 2012-11-19T19:47:14.517 に答える
0

まず、私はcoder1984に同意します。PHPとJavascriptを混合していて、クライアント側でPOSTデータにアクセスしようとしていますが、これは不可能です。私があなたがやろうとしていることを推測できるなら、多分このコードはあなたを助けるでしょう:

<script type="text/javascript">
if (<?php echo (isset($_POST['action']) && ($_POST['action'] =='confirmado')) ? '1' : '0'; ?>) {
  document.form.submit();
}
</script>
于 2012-11-19T19:51:03.610 に答える
0

私があなたのコードを正しく理解しているなら、あなたはフィールド「アクション」が「確認」と等しい場合にのみフォームを提出したいと思います。すでにjQueryを使用しているので、それを維持しましょう。

JavaScript:

<script>
        $('document').ready(function() {
            $('input[name=action]').change(function() {
                if($(this).val() == 'confirmando') {
                    $('form').submit(); // If you would like to do a normal sumbit
                    $.post('my_php_file.php', $('form').serialize(), function(data)) { // or use AJAX
                        /* var data now contains the output of the PHP file  */
                    }
                }
            });
        });
    </script>

フォームからデータを受け取ったときに、PHPで送信されたフォームを確認することは依然として理にかなっています。

于 2012-11-19T20:03:38.383 に答える