将变量从ajax传递给php

Yes*_*wan 5 php variables ajax jquery 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); 
Run Code Online (Sandbox Code Playgroud)

和我的PHP

if (isset ($_POST['action']))
{   
    echo $_POST['action'];
}
Run Code Online (Sandbox Code Playgroud)

在firebug中,我可以看到ajax已经发布'action = value'但是在php中,$ _POST ['action']是空的.任何人都可以帮助我,我的代码有什么问题?谢谢

imc*_*iac 1

将其设置为 json 对象:

data: {action: elem}
Run Code Online (Sandbox Code Playgroud)

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

var elem = $('#myDiv').val();
Run Code Online (Sandbox Code Playgroud)

正如上面朋友所说。可能存在 js 在加载整个页面之前尝试获取 value 属性的情况。您应该在文档准备块中完成所有操作。

您还可以这样做:

data: {
action: $('#myDiv').val()
}
Run Code Online (Sandbox Code Playgroud)

然后您将确信您拥有表格上的最新数据!