2011-12-26 63 views
4

我有這段代碼,但是這行有一些問題。發送帶有兩個參數的字符串

var dataString = 'name='+name&'id='+id; 

什麼是發送(螢火蟲):

'id ' id 
'name' name 

線以上正常工作,如果我這樣做:var dataString = 'name='+name; 但是,我需要通過兩個參數。什麼是正確的方法來做到這一點?

代碼

<script type="text/javascript"> 
    $(function() { 
     $(".vote").click(function() { 
      var id = $(this).attr("id"); 
      var name = $(this).attr("name"); 
      var dataString = 'name='+name&'id='+id; 

      if (name == 'up') { 
       $.ajax({ 
        type: "POST", 
        url: "url.php", 
        data: dataString, 
        cache: false, 
        success: function (html) { 

        } 
       }); 
      return false; 
     }); 
    }); 
    </script> 
+0

'&'進入字符串.''name ='+ name&'id ='+ id;'應該是'name ='+ name +'&id ='+ id;' – nico 2011-12-26 19:19:13

+0

順便說一句,處理程序'$(this).attr('id')=== this.id'。 – Alnitak 2011-12-26 19:22:54

回答

6

你應該這樣做:

var dataString = { name: name, id: id} 

,而不是

var dataString = 'name='+name&'id='+id; 

所以您確定所提供的值是正確的URI編碼。

+0

這是正確的答案 - 它確保提供的值正確地進行了URI編碼。 – Alnitak 2011-12-26 19:20:08

+0

謝謝尼科拉,我會改變。這樣更乾淨。 – 2011-12-26 19:21:46

+1

@loops它很乾淨,正如Alitak指出的那樣,您確信這些值是正確編碼的 – 2011-12-26 19:57:47

3

試試這個:

var dataString = 'name='+name+'&id='+id; 

而不是

var dataString = 'name='+name&'id='+id; 

的&應該在裏面',你需要額外的+到Concat的「名「variable and'& id ='串。所以這應該工作。

UPD:

你也可以這樣做:

var dataString = { name: name, id: id } 
相關問題