0

これは、同じページへの単一のjQuery.ajax投稿を使用するページであり、正常に機能しています。

<?php 
if (!isset($_POST['varA'])) {
?>
<html>
    <head>
        <script type="text/javascript">
            $(document).ready(bingo);

            function bingo()
            {
                jQuery.ajax({
                    type: "POST",
                    data:  {varA: "123"},
                    success: function(data)
                    {
                        $("#test").html(data);
                    }
                });
            }
        </script>
    </head>
    <body>
        <span id="test"></span>
    </body>
</html>
<?php
}
else 
{
    print_r($_POST['varA']);
}
?>

状況:別の別の変数を使用して設定したい別の変数がありますjQuery.ajax。ただし、このようにまとめて配置すると、ページのコンテンツが複製されました。

悪い例(私がやろうとしていることを示しています)

<?php 
    if (!isset($_POST['varA'])) {
    ?>
    <html>
        <head>
            <script type="text/javascript">
                $(document).ready(bingo);

                function bingo()
                {
                    jQuery.ajax({
                        type: "POST",
                        data:  {varA: "123"},
                        success: function(data)
                        {
                            $("#test").html(data);
                        }
                    });
                }

                function buttony() //added 2nd independent jQuery.ajax function
                {
                    jQuery.ajax({
                        type: "POST",
                        data: {varB: "456"},
                        success: function(data)
                        {
                            $("#test2").html(data);
                        }
                    });
                }
            </script>
        </head>
        <body>
            <span id="test"></span>
            <span id="test2"</span> //added 2nd span
            <input type="button" value="Clicky" onclick="buttony()"/> //added
        </body>
    </html>
    <?php
    }
    else 
    {
        print_r($_POST['varA']);
    }

    if(isset($_POST['varB'])) //added isset() checking
    {
        print_r($_POST['varB']);
        echo 'varB Okay';
    }
    else
    {
        echo 'varB Not';
    }
?>

追加情報jQuery.ajax: 「悪い例」の両方の変数の投稿は正常に機能しています。


注:以下の画像は上記のコードからのものではなく、「コンテンツ自体が複製された」という意味の例にすぎません。

前

後


質問:jQuery.ajax 2 番目の関数とisset()POST 変数のチェックをどこに配置すれば、両方のjQuery.ajax関数が正しく機能し、互いに競合しないようにすることができますか?

4

2 に答える 2

0

window.location複雑さを避けるために、2番目のjQuery.ajaxの使用を置き換えていました。

サンプル例

JavaScript 関数内

window.location = "samePage.php?varB=abc";

POST 変数 varB のチェック

if(isset($_REQUEST['varB'])
{
    $getValue = $_REQUEST['varB'];
}

jQuery.ajaxコミュニティが同じページで2 つ以上を使用する適切なネスティングを行う方法に取り組むために、質問を開いたままにします。

于 2012-06-28T17:19:52.213 に答える
0

ビンゴ関数にドキュメント準備完了関数を渡す必要はありません。試す

$(document).ready(function() {

            function bingo()
            {
                jQuery.ajax({
                    type: "POST",
                    data:  {varA: "123"},
                    success: function(data)
                    {
                        $("#test").html(data);
                    }
                });
            }

            bingo();

            function buttony() //added 2nd independent jQuery.ajax function
            {
                jQuery.ajax({
                    type: "POST",
                    data: {varB: "456"},
                    success: function(data)
                    {
                        $("#test2").html(data);
                    }
                });
            }

            buttony();

}); //end document ready
于 2012-06-28T04:33:31.847 に答える