2012-05-01 11 views
0

フォトギャラリーはフォトアルバムとして分割されており、各フォトアルバムには写真がいくつもあります。私は複数のファイルをアップロードしても問題はありませんが、私が見逃しているのは、ユーザーにキャプションを入力させるテクニックです。複数のファイルをアップロードするためのキャプションの入力方法

私は、誰かが正しいかどうか、それとももっと良いことがあるかを誰かに教えてもらうことを願っています。

  1. 画像をアップロードして、1つずつキャプションを入力させます。
  2. 複数のファイルをアップロードするというアイデアをキャンセルし、写真を1つずつ入力するようにしてください。
+0

では、それぞれの画像とキャプションを強制的に問題はありますか? – ethrbunny

+0

この問題は、ユーザーが強制的に各画像のキャプションを入力することを可能にする方法のアイデアです。申し訳ありませんが、私は英語圏の国ではなく、ファイルフィールドにアクセスし、あなたのファイルを選択してキャプションを入力する方法を教えてください –

+1

私はあなたの最初の考えに行き、写真をアップロードして、キャプションのためのスペースを提供するレイアウトを行います。それはかなりまっすぐに聞こえる。 – ethrbunny

答えて

0

は、私はあなたが私の答えに役立つ願って、
さて、私はそれが動作し、あるいは少なくともそれは私はそれが動作するように望んでいた方法です得ることができました。ここに私の新しい修正があります。ここで

uploading.jsファイル

 $(document).ready(function(){ 
     $.event.props.push('dataTransfer'); 
     var fileList = new Array(); 
     $("#droparea").bind('dragenter dragover', false).bind('drop', function(e){ 

      $.each(e.dataTransfer.files, function(index, file){ 
       fileList.push(file); 
       var fileReader = new FileReader(); 
       fileReader.readAsDataURL(file); 
       fileReader.onload = (function(e){ 

        var form = document.createElement('form'); 
        form.action = 'uploads'; 
        form.className = 'forms'; 

        var img = document.createElement('img'); 
        img.src = e.target.result; 
        img.width = 80; 

        var label = document.createElement('label'); 
        $(label).append('Image Caption'); 

        var input = document.createElement('input'); 
        input.type = "text"; 
        input.name = "title"; 
        input.value = ""; 

        var button = document.createElement('button'); 
        $(button).append('Upload'); 
        $(form).append(img);  
        $(form).append(input);    
        $(form).append(button);    

        $('#uploads').append(form); 
       }); 
      }); 

      e.preventDefault(); 
      e.stopPropagation(); 

     }); 

     $('#upload-all').on('click', function(e){ 
      e.preventDefault();  
      var formData = new FormData($(this)[0]);  
      $('form').each(function(i){ 
      var title = $(this).find('input').val(); 
      formData.append('file[]', fileList[i]); 
      formData.append('title[]', title); 
     }); 

     upload(formData); 
}); 

function upload(data) { 

    var xhr = new XMLHttpRequest(); 
    xhr.open('post', 'upload.php', true); 
    xhr.send(data); 

} 

     $(document).on('submit', 'form', function(e){ 
      e.preventDefault(); 
      //var index what does this do? 
      var index = $(this).index(); 
      var formData = new FormData($(this)[0]); 
      formData.append('file', fileList[index]); 
      var xhr = new XMLHttpRequest(); 
      xhr.open('post', 'upload.php', true); 
      xhr.send(formData); 
     }); 
    }); 

マイアップロードテンプレートファイルは.html

<div id="droparea" class="droparea"> 
    Drop files here to upload 
</div> 
<div id="uploads"> 

</div> 
<button id="upload-all">Upload All</button> 
関連する問題