将参数传递给jQuery'Load'

时间:2011-06-20 11:29:17

标签: jquery

我的页面上有一些脚本:

$('#divMenuHolder').load('../menu.html');

但是我还需要能够传递一些在menu.html页面上作用的参数。

我尝试了以下内容:

$('#divMenuHolder').load('../menu.html?opt1=test&opt2=test2');

但是当我使用以下函数来获取参数时:

function getUrlVars()
{
    var vars = [], hash;
    var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
    for(var i = 0; i < hashes.length; i++)
    {
        hash = hashes[i].split('=');
        vars.push(hash[0]);
        vars[hash[0]] = hash[1];
    }
    return vars;
}

它没有返回任何内容,因为它试图获取页面本身的参数,而不是我正在加载到DIV中的页面。

无论如何可以帮助指导我找到我想要的东西吗?

4 个答案:

答案 0 :(得分:4)

这对我有用

$('#semester').load("restricted/getSemester.php?courseid=" + $("#course").val());

其中#course是输入字段的id。

OR

$('#subject').load("restricted/getSubject.php?courseid=0&semester=0");

我希望这有助于你:)

答案 1 :(得分:2)

根据this jQuery load() documentation example

  

示例:将数据数组传递给   服务器

$("#objectID").load("test.php", { 'choices[]': ["Jon", "Susan"] } );

功能定义:

  

.load( url, [data,] [complete(responseText, textStatus, XMLHttpRequest)] )

     

url包含URL的字符串   请求发送。

     

data发送到的地图或字符串   带有请求的服务器。

     

complete(responseText, textStatus, XMLHttpRequest)   回调函数   在请求时执行   完成。

答案 2 :(得分:0)

尝试以下

var url_to_load = '../menu.html?opt1=test&opt2=test2';
$('#divMenuHolder').load(url_to_load);

function getUrlVars(url_to_load)
{
    var vars = [], hash;
    var hashes = url_to_load.slice(url_to_load.indexOf('?') + 1).split('&');
    for(var i = 0; i < hashes.length; i++)
    {
        hash = hashes[i].split('=');
        vars.push(hash[0]);
        vars[hash[0]] = hash[1];
    }
    return vars;
}

答案 3 :(得分:0)

我遇到了类似的问题。只是想知道你是否找到了解决方案。我发现了一种解决方法,但它不适合我的应用程序。

其中一个选项是在加载URl之前设置cookie并在单独的html页面中访问cookie。但是cookie可以被禁用,所以你必须小心那个部分。如果你的单独的html可以重复使用,那么你需要找出完美的解决方案,在这种情况下cookie不是很有用。