使用ajax提交表单后第二次无法从textarea获取图像数据(base64)

时间:2016-03-10 05:58:43

标签: javascript php jquery ajax codeigniter

我从隐藏的textarea和该值获取base64格式的图像数据 是通过ajax保存,图像是第一次生成i 使用ajax提交表单,在ajax成功方法中我得到新的图片网址 我使用$(' .contained')。attr(" src",data)显示;但是第二次 当我上传图像时,我没有得到textarea中的值,所以没有图像 是生成beign,但当我刷新我的页面,然后再次提交然后它 工作正常我不想刷新页面。请帮助解决我的问题。

  

查看:

<script type="text/javascript">
$("#upload_course").on('submit',function(e){
    e.preventDefault();
    var txtareaval = $('#image_source').val();

    var baseurl="<?php echo base_url(); ?>";

    var formData = new FormData($("#upload_course")[0]);

 $.ajax({
    url: "<?php echo base_url();?>upload_course_image/do_upload",
        type: 'POST',
        async : false,
        cache : false,
        contentType : false,
        processData:false,
        data: formData,
        success: function(data){

        $('.loader').show();
        $('.contained').attr("src",data);
         setTimeout(function () {
           $('.loader').hide();
           $("#show_image_preview").show();
         }, 1000);
       },
    error: function(){                      
       alert('Error while request..');
       }
   });
});
</script>

<form  enctype="multipart/form-data" method="post" accept-charset="utf-8" id="upload_course" action="<?php echo site_url('upload_course_image/do_upload'); ?>"> 
<input type="hidden" name="c_id" value="<?=$result;?>" />
<img class="contained" data-purpose="image-preview" style="max-width:500px;width:500px;height: 300px;" src="<?php echo $image; ?>" />
<textarea id="image_source" name="test" style="display:none"></textarea>
<input type="File" name="course_img" id="course_img"/>
<input type="submit" name="submit" value="Save" class="btn btn-primary btn btn-success" id="submit-id-submit"/> 
</form>

enter image description here

1 个答案:

答案 0 :(得分:0)

将当前时间添加到图像的末尾,如下所示

$('.contained').attr("src",data + '?' + new Date().getTime()).show());