1

これは私のhtmlページです:

<div>
<form id="assignment_form" action="/submit-assignments/" method="post" accept-charset="utf-8">
    {% csrf_token %}
    <!-- Fields here -->
    <select id="user_list" multiple='multiple' size="10">
    {% for u in users %}
        <option value="{{ u.iduser }}" >{{ u.get_long_name }}</option>
    {% endfor %}
    </select>
    <select id="assigned_list" multiple='multiple' size="10" style="width: 200px">
    </select>
    <input id="assign" type="submit" value="Assign"/></input>
</form>
</div>
<script type="text/JavaScript">
    $(document).ajaxSend(function(event, xhr, settings) {
        //cookies stuff
    }

    $(document).ready(function() {
        $("#assignment_form").submit(function(event){
            event.preventDefault();
            $.ajax({
                type:"POST",
                url:"/brewkeep/submit-assignments/",
                data: $("#assignment_form").serialize(),
                success: function(data) {
                     alert(data);
                }
            });
       });
    });
</script>

これは私のDjangoビューです:

def submit_assignments(request):
    print request.POST
    return HttpResponse("Success!")

ボタンをクリックした後Assign、画面出力を確認すると、次のように表示されます。

<QueryDict: {u'csrfmiddlewaretoken': [u'LqSWcQDMt8YGoBqpBMw8B8mfebC9ZyEo']}>

提出したデータにアクセスするにはどうすればよいですか?

ありがとう!

4

1 に答える 1

1

には属性selectが必要nameです:

<select id="user_list" name="user_list" multiple='multiple'  size="10">
{% for u in users %}
    <option value="{{ u.iduser }}" >{{ u.get_long_name }}</option>
{% endfor %}
</select>
<select id="assigned_list" name="assigned_list" multiple='multiple' size="10" style="width: 200px">
</select>

 

HTML 仕様:

正常なコントロールは FORM 要素内で定義する必要があり、コントロール名が必要です。

w3schools <input>name 属性:

注: name 属性を持つフォーム要素のみが、フォームの送信時に渡される値を持ちます。

于 2013-04-05T17:47:32.350 に答える