2011-12-26 5 views
4

私はこのコードを持っていますが、この行には問題があります。2つのパラメータを持つ文字列を送信

送られるもの
var dataString = 'name='+name&'id='+id; 

(放火魔):私がしなければ上記

'id ' id 
'name' name 

行が正しく動作:var dataString = 'name='+name; はしかし、私は2つのパラメータを渡す必要があります。それを行う正しい方法は何ですか?

コード

<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& 'id =' + id;'は実際に '' name = '+ name +'&id = '+ id;' 'でなければなりません。 – nico

+0

ハンドラ '$(this).attr( 'id')=== this.id'。 – Alnitak

答えて

6

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

代わりの

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

ので、提供された値が正しくエンコードされていることを確認してください。

+0

正しい答えは、指定された値が正しくURIエンコードされていることを確認することです。 – Alnitak

+0

感謝のニコラ、私は変更されます。この方法はよりクリーンです。 –

+1

@loopsきれいで、Alitak氏が指摘したように、値は正しくエンコードされたURIであると確信しています –

3

このお試しください: ''

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

代わりの

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

&は内部でなければなりませんが、あなたは「名前をCONCATするために余分な+を必要とします"変数と '& id ='文字列。これはうまくいくはずです。

UPD:

あなたはまた、行うことができます。

あなたがすべき
var dataString = { name: name, id: id } 
関連する問題