将变量从ajax传递给php

时间:2013-03-19 09:39:38

标签: php jquery ajax variables post

我有1个php文件名index.php。在该文件中,我想将一个变量从ajax传递给php。

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 个答案:

答案 0 :(得分:4)

尝试使用此类数据

data: {action: elem},

例如

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

整个$ _REQUEST并检查你是否正在采取行动

答案 1 :(得分:1)

将其设置为json对象:

data: {action: elem}

并且不要将jquery与纯js混合。

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

如上面的朋友所说。在整个页面加载之前,js可能会尝试获取value属性。您应该在文档就绪块中执行所有操作。

你也可以这样做:

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

您将确定表格中有最新数据!

答案 2 :(得分: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);
});

答案 3 :(得分:0)

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

试试这段代码......