2011-10-04 63 views
1

我的參數正在被提取形式的HTML代碼,並粘貼到jQuery .load requestjQuery .load - 參數在url - multiparts,多值

HTML代碼:

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

從HTML代碼PARAMS提取,內部.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 

     }); 

但是,我可以在螢火看到的URL看起來像這樣:

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


正如你所看到的,正在使用的僅 var JobTitle第一個字。爲什麼?

如何將URL中的多值參數過濾?

+0

我使用URL負載的功能包含了PARAM的價值空間沒有任何問題。馬布螢火蟲無法實現完整的網址,但它確實發送到服務器正確。 –

回答

3

我想你應該使用encodeURIComponent()允許在查詢字符串

var JobTitle = $('span', this).html(); // Get Job Title 
    JobTitle = encodeURIComponent(JobTitle) 
    console.log(JobTitle); 
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)); 
    }); 
})