2012-03-22 26 views
0

我想使用prototype.js的新Ajax updater()方法提交我的表單。當我在我的控制器中檢查請求時,我發現圖像字段不存在。閱讀了幾篇文章之後,我發現使用Ajax保存圖像會有一些複雜性。這裏是我的模板代碼: -不能從我的表單發佈圖像使用prototype.js的Ajax updater()

<script type = "text/javascript"> 

    function showWaitingImage(divId){ 
     $(divId).innerHTML = "<img src='../spinner.gif'/>Loading..."; 
    } 
    this.showWaitingImage = showWaitingImage  

    function SubmitStudentinfo() { 
     new Ajax.Updater('main-form','{{ path('CollageStudentBundle_studentinfo_new') }}', { method: 'post', evalScripts : true, parameters: $('student-form').serialize() , onLoading : showWaitingImage('main-form') }); 
    } 
    this.SubmitStudentinfo = SubmitStudentinfo 

</script> 

<div id="main-form"> 
<form {{ form_enctype(form) }} name="student-form" id="student-form" > 

{{ form_errors(form) }} 

    <table border="1" cellpadding="5" cellspacing="2" width="100%" > 
     <tr> 
      <td>{{ form_row(form.bloodgroup, { 'attr': {'class': 'input-medium1'} }) }}</td> 
      <td>{{ form_row(form.dob, { 'attr': {'class': 'input-medium1'} }) }}</td> 
      <td>{{ form_row(form.program_id, { 'attr': {'class': 'input-medium1'} }) }}</td> 
      <td>{{ form_row(form.category_id, { 'attr': {'class': 'input-medium1'} }) }}</td> 
      <td>{{ form_row(form.picture, { 'attr': {'class': 'input-medium'} }) }}</td> 
     </tr> 
    </table> 


    {{ form_rest(form) }} 

    <input type="button" value="Save And Next" onclick="SubmitStudentinfo();" /> 
</form> 
</div>  

有沒有什麼辦法可以將圖像與表單一起發佈。或者還有其他需要關注的圖像。

回答

1

AJAX無法上傳文件。有一些解決方法,比如從iframe提交表單,這就是Ajax Upload plugin的工作原理。


有了HTML5,你現在可以使用FormData上傳文件,但不能在所有的瀏覽器。

+0

感謝您的回覆。我下載了插件,但是當我打開客戶端/ demo.htm並嘗試用一個簡單的文件..它彈出失敗。請幫助 – ScoRpion 2012-03-23 07:17:41

+0

我自己並沒有使用它,而「失敗」沒有提供信息。一定要[按照說明](https://github.com/valums/ajax-upload#readme),也許尋找其他人[誰有類似的問題](https://github.com/valums/ajax-upload /問題)。 – clockworkgeek 2012-03-23 11:42:32