2015-11-19 31 views
0

所以我使用dropzone.js,我想在dropzone成功事件后重新加载特定图像。dropzone成功事件后的Ajax图像加载

我控制器

public function edit($id) 
{ 
    $offer = Offer::find($id); 

    if(!is_object($offer->getMedia('featimgs')->first())){ 
     $offerfeatimg = '/assets/images/offerfeatimg.jpg'; 
    } else { 
     $offerfeatimg = $offer->getMedia('featimgs')->first()->getUrl('medium'); 
    } 

    return view('admin.offers.edit')->with(compact('offer', 'offerfeatimg')); 
} 

所以这是我的形象传递给视图:

<div class="panel-body"> 
      <img src="{{ $offerfeatimg }}" class="img-responsive"> 
      @if($offerfeatimg != '/assets/images/offerfeatimg.jpg') 
      <div class="removebutton"> 
       <a href="/admin/offer/featimg/delete/{{ $offer->id }}" class="btn btn-danger" role="button">Izbrisi sliku</a> 
      </div> 
      @endif 
      <form action="/admin/offer/featimg/{{ $offer->id }}" class="dropzone" id="my-awesome-dropzone"> 
       {!! csrf_field() !!} 
       <div class="dz-message">Prebacite glavnu sliku za ovu ponudu</div> 
      </form> 

     </div> 

的观点:

所以我希望以后重新加载通过AJAX这部分成功dropzone事件:

<img src="{{ $offerfeatimg }}" class="img-responsive"> 
      @if($offerfeatimg != '/assets/images/offerfeatimg.jpg') 
      <div class="removebutton"> 
       <a href="/admin/offer/featimg/delete/{{ $offer->id }}" class="btn btn-danger" role="button">Izbrisi sliku</a> 
      </div> 
      @endif 

有何想法?

回答

0
Dropzone.options.myAwesomeDropzone = { 

      paramName: "file", // The name that will be used to transfer the file 
      maxFilesize: 2, // MB 
      parallelUploads: 1, 
      success: function (file, response) { 
       var imageSrc = response; 
       $(".img-responsive").attr('src', imageSrc); 
       if(imageSrc == '/assets/images/offerfeatimg.jpg') { 
        $(".removebutton").hide(); 
       } else { 
        $(".removebutton").show(); 
       } 

       this.removeAllFiles(); 
      } 
     }; 
0

这是假设一下你的JavaScript设置,包括jQuery。如果悬浮窗对象是可用的形式节点上,你应该能够做这样的事情在JavaScript:

var dz = $('form.dropzone').get(0).dropzone; 

dz.on("success", function (file, response) { 
    var imageSrc = ... // add logic here to determine src from server response 
    $(".img-responsive").attr('src', imageSrc); 
    if(imageSrc != '/assets/images/offerfeatimg.jpg') { 
    $(".removebutton").hide(); 
    } 
    else { 
    // you may need to edit your html so that this button exists in order to show it 
    $(".removebutton").show(); 
    } 
}); 

或者,你可以设置事件处理程序是这样的:

Dropzone.options.myAwesomeDropzone = { 
    ... other options ..., 
    success: function() { 
    ... 
    } 
}; 

看看在处理dropzone事件:http://www.dropzonejs.com/#events

+0

当我通过dropzone发送图像时,我的回应是实际的图像路径。 但我如何使用该响应在var imageSrc = response? –

+0

好吧,我得到它的工作。如果(imageSrc!='/assets/images/offerfeatimg.jpg') –

+0

也许你想使用'$(“。removebutton”)。hide()'和'$( “.removebutton”)。show()'基于'imageSrc'的值?如果您需要,我会编辑我的答案。 – csum