将json参数作为变量传递给.load()

时间:2015-06-12 08:42:05

标签: javascript jquery json

OnbuttonClick尝试通过.load() POST 方法加载页面。生成的URL参数并打印为按钮属性btn-url中格式化的JSON。

问题:参数未传递给.load(),因为我使用的是javascript变量page

代码:

$(document).ready(function(){       
                $("#open-content").load($php_self,loadfunctions);
                $("#open-content").on( "click", ".tools a", function (e){
                    e.preventDefault();
                    $("#open-loading-div").show();
                    var page = $(this).attr("btn-url");
                    $("#open-content").load($php_self,page, function(){
                        $("#open-loading-div").hide();
                        loadfunctions();
                    });             
                });         
        });

工作代码:

$(document).ready(function(){       
                $("#open-content").load($php_self,loadfunctions);
                $("#open-content").on( "click", ".tools a", function (e){
                    e.preventDefault();
                    $("#open-loading-div").show();
                    /*var page = $(this).attr("btn-url");*/
                    $("#open-content").load($php_self,{"pndg":"nta%3d","nm":"umfuiefuzhk%3d","dpt":"sfi%3d}, function(){
                        $("#open-loading-div").hide();
                        loadfunctions();
                    });             
                });         
        });

我希望page变量中存储的 JSON 作为参数传递给.load()

如何将网址参数从page变量传递到.load()函数?

注意:$php_selfpage将通过 POST 方法访问 PHP 文件

1 个答案:

答案 0 :(得分:1)

问题是,page对象不是json object,而是stringified json object。但是,.load中的jQuery方法接受字符串和普通对象,但它不适用于stringified json。简单的解决方案是将.load调用更改为:

$("#open-content").load($php_self,JSON.parse(page), function(){ 
    $("#open-loading-div").hide(); 
    loadfunctions(); 
});