jQuery .load - url中的params - multiparts,multivalue

时间:2011-10-04 08:40:29

标签: jquery parameters jquery-load

我的参数是从HTML代码中提取的,而不是粘贴到jQuery .load request

Html代码:

<a href="#" class="employee">John Doe<span>Lead Web Developer</span></a>

.click内的html代码中提取参数:

        //Create href + params from name + params from title
        var substr = ( $(this).html() ).split('<span>')[0].split(' '); // Get First & Last Name
        var JobTitle = $('span', this).html(); // Get Job Title 

        console.log( JobTitle );  
        // console log will be multivalue (e.g "Lead Web Developer")

带有参数的jQuery .load请求

$('.popUp').load("employee.php?FirstName=" + substr[0]+"&LastName=" + substr[1] + "&JobTitle=" + JobTitle, function(){

                // Do Stuff When Done

        });

但是,我在FireBug中看到的URL看起来像这样:

http://host.loc/employee.php?FirstName=John&LastName=Doe&JobTitle=Lead

<小时/> 如您所见,只使用var JobTitle中的第一个单词。为什么呢?

如何在网址中过去多值参数?

2 个答案:

答案 0 :(得分:3)

我认为您应该使用encodeURIComponent()对值进行编码,以允许查询字符串中的空格

    var JobTitle = $('span', this).html(); // Get Job Title 
    JobTitle = encodeURIComponent(JobTitle)
    console.log( JobTitle );  

答案 1 :(得分:1)

对params进行编码。

使用可以为您处理的http://api.jquery.com/jQuery.param/

示例 -

$(document).ready(function(){
    $('a').click(function(e){
        e.preventDefault();
        var substr = $(this).html().split('<span>')[0].split(' ');
        var JobTitle = $('span', this).html();
        var params = {
            FirstName: substr[0],
            LastName: substr[1],
            JobTitle: JobTitle
        };
        alert($.param(params ));
    });
})