2012-04-05 8 views
1

私はhereのようなフォームを使用して、ファイルをYoutubeアカウントにアップロードしています。このように:YouTube APIブラウザアップロードフォームにフィールドを追加して処理するにはどうすればよいですか?

<form action="<?=$YTurl ?>?nexturl=http://localhost/update-video.php" method="post" enctype="multipart/form-data"> 
    <input id="file" type="file" name="file"/> 
    <input type="hidden" name="token" value="<?=$YTtoken ?>"/> 
    <input type="hidden" name="test" value="testvalue1234"/> 
    <input type="submit" value="go" /> 
</form> 

しかし、私は、フォーム上の複数のフィールドを持つようにし、アクションがYouTubeのサーバーに設定されているので、私は残りのフィールドを処理することはできません計画しています。誰にもこれに対する回避策がありますか?私はカスタムパラメータを追加し、nexturlで指定されたコールバックでそれらを私にポストすることをYTに期待したいと思います。

ありがとうございます!

答えて

1

フォームを送信する前に、最終的にAJAX経由で他のフォームフィールドを送信しました。また、適切なレコードに格納されていることを確認するために、セッションIDハッシュでビデオを識別します。誰か(jquery.validate.jsにまとめられている)に役立つ場合のコードは次のとおりです。

<script type="text/javascript"> 
    $(document).ready(function(){ 
     $("form").validate({ 
      rules: { ... }, 
      messages: { ... }, 
      submitHandler: function (form) { 
       if ($('#video_file').val()) { 
        var data = {}; 
        $('input').each(function() { 
         data[$(this).attr('name')] = $(this).val(); 
        }); 
        $.ajax({ 
         url: 'process.php', dataType: 'json', type: 'POST', data: data, 
         success: function(response) { 
          if (response.status == '200') { 
           url = '<?=$tokenArray['url']?>?nexturl=http://localhost/update-video.php?hash=' + response.sid; 
           $(form).attr('action', url);           
           form.submit(); 
          } 
         } 
        }); 
       } else if ($('#video_url').val()) { 
        form.submit(); 
       } 
      } 
     }); 

    }); 
</script> 
関連する問題