1

ページがあり、フォームの入力を生成したい。

私はjqueryでこれを行います:

function getval() {

    $('#UploadForm').empty();

    var limit = $("#GalleryCount").val();

    for(var i = 1;i<=limit;i++) {

        $('#UploadForm').append('<div class="imgOrderAdmin"><label for="file'+i+'">Image '+i+'</label><input type="file" name="file'+i+'" value="file'+i+'" /></div>');
    }
}

要素は ID #UploadForm で div に追加されますが、フォームが sendt の場合、それらはキャッチされません。フィールドを HTML ページに静的に追加すると、生成しているものとまったく同じコピーとして機能しますJS。

PHP:

$i = 1;
while (!empty($_FILES['file'.$i]['name'])) {

    echo $_FILES['file'.$i]['name'];
    $i++;
}

HTML フォーム プロパティ:

<form class="form-horizontal well" action="postAction.php" method="post" enctype="multipart/form-data">
4

3 に答える 3

1

どうやら:

 $('<div class="imgOrderAdmin"><label for="file'+i+'">Image '+i+'</label><input type="file" name="file'+i+'" value="file'+i+'" /></div>').appendTo('#UploadForm');

また

 $('form#UploadForm').append('<div class="imgOrderAdmin"><label for="file'+i+'">Image '+i+'</label><input type="file" name="file'+i+'" value="file'+i+'" /></div>');

動作するはずです。

'#UploadForm' の前に 'form' を追加することで、フォームの外側のページだけでなく、入力が実際にフォームに追加されることを確認します。

于 2013-06-27T18:04:47.657 に答える
1

セキュリティ上の理由から、ブラウザーでは、 を含む要素のvalue属性をプログラムで割り当てることはできません。inputtype="file"

これが可能かどうか想像してみてください。悪意のある JavaScript は、ユーザーのコンピューターから任意のファイルをアップロードする (または少なくともアップロードを試みる) ことができます。

于 2013-06-27T18:05:32.900 に答える
0

名前を配列にした方が簡単だと思いますname="file[i]"

$('#UploadForm').append('<div class="imgOrderAdmin"><label for="file'+i+'">Image '+i+'</label><input type="file" name="file['+i+']" /></div>');

そしてphpで

for($i=1;$i<=count($_FILES['file']);$i++){
  if(!empty($_FILES['file'][$i]['name'])) {
    echo $_FILES['file'][$i]['name'];
  }
}
于 2013-06-27T18:09:55.700 に答える