我正在尝试使用prototype.js的新Ajax updater()方法提交表单。当我在我的控制器中检查请求时,我发现图像字段不存在。在阅读了一些文章后,我发现使用Ajax可以保存一些复杂的图像。这是我的模板代码: -
<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>
我有什么方法可以将图像与表单一起发布。或者我需要遵循哪些其他的存储图像。
答案 0 :(得分:1)
AJAX无法上传文件。有一些解决方法,例如从iframe提交表单,这就是Ajax Upload plugin的工作方式。
使用HTML5,您现在可以使用FormData
上传文件,但不能在所有浏览器中使用。