1

編集可能な動的に生成されたテーブルがあります。テーブル内の任意のセルをクリックすると、そのテキストを変更できます。

1 つの列に画像が表示されます。ユーザーがクリックすると、その列の html が変更され<input type='file'>、クリックがトリガーされるため、ユーザーはアイコンとしてアップロードするファイルを選択できます。

テーブルの最後の列には、コミット ボタンがあります。ユーザーがいくつかの変更を加えてコミットを押した場合、行全体 (いくつかのテキスト フィールドと 1 つのファイル フィールド) を取得し、ユーザーが選択したファイルを含むすべてのコンテンツをフォームに追加し、それを Python スクリプトに送信してアップロードする必要があります。 s3 サーバーに。

私の質問は次のとおりです。このフォームを送信するにはどうすればよいですか?

私は現在スクリプトを使用していますがrequest.Files、python(django)スクリプト側で空になるとテキストを送信するだけなので機能しません。

function update(a) {
    try {
        var button = $(a);
        var row = $(button.parent());
        var rowcount = button.parent().parent().parent().children().index(button.parent().parent());
        var filerow = '';
        var formrow = new Array();
        var rowkey = new Array('Topic', 'TopicDescription');
        var cnt = 0;
        var form = $('#dyno_form');
        row.siblings().each(function () {
            if ($(this).find($('input:file')).length > 0) {
                $(this).find($('input:file')).appendTo($(form));
            } else if ($(this).find($('img')).length == 0) {
                formrow[cnt++] = '<input type="text" value="' + $(this).html() + '" name="' + rowkey[cnt - 1] + '"/>';
            }
        });
        $(form).append(formrow[0]);
        $(form).append(formrow[1]);
        $(form).submit();
    } catch (a) {
        alert(a);
    }
}

HTMLは次のとおりです。

   <form id='dyno_form' action='' method="post" style="visibility:hidden">{% csrf_token %}</form>

どうすればこれを行うことができますか?

4

1 に答える 1

1

ファイルをアップロードする場合、form要素には正しいenctype属性が必要で、メソッドはpost.

<form enctype="multipart/form-data" method="post" ...

それ以外の場合は、入力の値のみがアップロードされます。

于 2013-06-29T11:58:26.890 に答える