0

いくつかのチェックボックスの値を取得し、それらの値 (整数) を配列に挿入する JavaScript コードがあります。

var my_list = $('.item:checked').map(function(){return $(this).attr('name');}).get();

このjavascript配列をパラメータとしてpython関数に渡したいです。これは、ajaxとjQueryを使用して、現在行っている方法です。

$.ajax({
    url : "{{tg.url('/foo/bar')}}",
    data : {
            my_list: JSON.stringify(my_list),
        ...
    },

Python側では、パラメーターを取得するために次のコードがあります。

item_list = get_paramw(kw, 'my_list', unicode)

これは機能しますが、配列を整数の配列として受け取っているのではなく、「[」、「]」、「、」、および「」記号を含む単一の文字列として受け取っています。これは解析する必要があり、そうではありませんこの状況全体に対処する最もエレガントな方法だと思います。

整数のjavascript配列をPythonの整数の配列として(文字列としてではなく)受け取るにはどうすればよいですか?

4

2 に答える 2

1

1 つのキーに対して複数の値を送信する適切な方法は次のとおりです。

data: {
    my_list: my_list,
},
traditional: true
...

my_list = [ 1, 2, 3 ]これにより、クエリ文字列/ POSTデータが返されるとします

my_list=1&my_list=2&my_list=3

traditionalフラグがないと、結果は次のようになります。

my_list[]=1&my_list[]=2&my_list[]=3

もちろん動作しますが、TurboGears では としてアクセスする必要がありますmy_list[]

一方、TG キーワード引数の受け渡しが複数の値で機能するかどうかはわかりません。kw で 1 つの値を取得した場合、 を使用してすべてのキーをリスト (おそらく空のリスト) としてrequest.getall('foo')返すことができます。foo

于 2013-08-17T00:53:32.703 に答える