无法使用我的表单发布图像使用prototype.js的Ajax updater()

时间:2012-03-22 05:08:32

标签: php javascript ajax prototypejs

我正在尝试使用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>      

我有什么方法可以将图像与表单一起发布。或者我需要遵循哪些其他的存储图像。

1 个答案:

答案 0 :(得分:1)

AJAX无法上传文件。有一些解决方法,例如从iframe提交表单,这就是Ajax Upload plugin的工作方式。


使用HTML5,您现在可以使用FormData上传文件,但不能在所有浏览器中使用。