1

私のパラメータは、HTMLコードから抽出され、に貼り付けられてjQuery .load requestいます。

HTML コード:

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

内部のhtmlコードからのパラメータ抽出.click

        //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


ご覧のとおり、 from の最初の単語のみvar JobTitleが使用されています。なんで?

URL 内で複数値パラメータを過去に渡すにはどうすればよいですか?

4

2 に答える 2

3

クエリ文字列にスペースを含めるには、 encodeURIComponent()を使用して値をエンコードする必要があると思います

    var JobTitle = $('span', this).html(); // Get Job Title 
    JobTitle = encodeURIComponent(JobTitle)
    console.log( JobTitle );  
于 2011-10-04T08:44:16.280 に答える
1

パラメータをエンコードします。

あなたのためにそれを処理する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 ));
    });
})
于 2011-10-04T08:54:32.113 に答える