5

私は1つのphpファイル名index.phpを持っています。そのファイルで、ajaxからphpに1つの変数を渡したい.

var elem = document.getElementById("mydiv").value;
(function($)
{
    $(document).ready(function()
    {   
        $.ajax(
        {   
            type:"POST",
            url: window.location.href,
            data: 'action='+elem,
            beforeSend: function() {
                $('#cctv').hide();
            },
            complete: function() {
                $('#cctv').show();
            },
            success: function() {
                $('#cctv').show();
            }
        });
        var $container = $("body");
        $container.load('findAllPath.php',{'function': 'findAllPath'});
        var refreshId = setInterval(function()
        {
            $container.load('findAllPath.php',{'function': 'findAllPath'});
        }, 10000);
    });
})(jQuery); 

そして私のphp

if (isset ($_POST['action']))
{   
    echo $_POST['action'];
}

firebug では、ajax が既に 'action=value' を投稿していることがわかりますが、php では $_POST['action'] が空です。誰でも私を助けることができます、私のコードの何が問題になっていますか? ありがとうございました

4

4 に答える 4

4

このようなデータを使用してみてください

data: {action: elem},

例えば

$.ajax({
   type: "POST",
   url: "some.php",
   data: { name: "John", action: "save" }
   }).done(function( msg ) {
  alert( "Data Saved: " + msg );
});

$_REQUEST 全体を printr して、アクションが取得されているかどうかを確認します

于 2013-03-19T09:44:18.433 に答える
1

これをjsonオブジェクトとして設定します。

data: {action: elem}

jqueryと純粋なjsを混在させないでください。

var elem = $('#myDiv').val();

そして上の友人が言うように。ページ全体が読み込まれる前に、jsがvalueプロパティを取得しようとしている場合があります。ドキュメントレディブロックですべてを行う必要があります。

次のこともできます。

data: {
action: $('#myDiv').val()
}

これで、フォームに最新のデータがあることを確認できます。

于 2013-03-19T09:42:41.143 に答える
1

これを見て、あなたが見逃したものを見つけてください

    $.ajax({
        type: "POST",
        url: "some.php",
        data: { action: elem}
        beforeSend: function() {
            $('#cctv').hide();
        },
        complete: function() {
            $('#cctv').show();
        },
        success: function() {
            $('#cctv').show();
        }
    });
    var $container = $("body");
    $container.load('findAllPath.php',{'function': 'findAllPath'});
    var refreshId = setInterval(function()
    {
        $container.load('findAllPath.php',{'function': 'findAllPath'});
    }, 10000);
});
于 2013-03-19T09:59:24.247 に答える
0
if (!empty($_POST['action']))
{   
echo $_POST['action'];
}

このコードを試してください...

于 2013-03-19T11:16:13.450 に答える