2016-10-11 9 views
0

を再読み込みするのAJAXを経由してユーザーがアップロードしたファイルを削除するデフォルトの方法、画像表示装置をアップロードしたユーザーが(画像を削除するには)次のようになり、小さな黒いXを示していますPrestaShopの:代わりのページ

<a href="path/to/yourproduct?deletePicture=1" title="Delete" > 

すると、ユーザそのボタンをクリックすると、ページが再読み込みされ、ユーザーがアップロードしたファイルが削除されます。

コードがどこのファイルを削除しているのかわからないので、AJAXを使うとよいでしょう。さらに、ユーザーがページに情報を入力した場合にのみ、再入力する必要はありません。

私はこれに小さな黒いX変更:

<a id="deletePictureTrigger" href="javascript:void(0)" title="Delete" > 

を私はまたproduct.jsでこれを追加しました:

$('#deletePictureTrigger').click(function(e){ 
    alert('now it deletes'); 
}); 

これが機能するとアラートがポップアップ表示されます。

これを継続するにはどうすればよいでしょうか?

このようなものでしょうか? :

$('#deletePictureTrigger').click(function(e){ 
    alert('now it deletes'); 
     $.ajax({ 
      url: "path/to/product?deleteProduct=1", 
      type: 'GET', 
      cache: false, 
      dataType: 'json', 
      processData: false, 
      contentType: false,    
      //enable for saving on 'add to cart' 
      //async: true, 
      success: function(data, textStatus, jqXHR) 
      { 
       alert ("Deleted"); 
       $('.customizationUploadBrowse').remove(); 
      }, 
      error: function(jqXHR, textStatus, errorThrown) 
      { 
       alert ("there was an error:"+errorThrown); 
      // ***** THIS GETS AN ERROR ***** // 
      } 
     }); 

}); 

このページがリクエストされたときに呼び出されるdeletePictureメソッドはどこですか?

私はこれを自動化したいので、ajaxはページをリロードせずに削除します。私はこのような私のAJAX呼び出しを一部変更しなければならなかった

+0

「エラー」あなたが得るです:)。行番号6のコード。成功すると、ユーザーにメッセージを追加して、DOMから要素を削除することができます – sarcom

+0

AJAX呼び出しからデータ要素を削除し、成功とエラーにアラートを追加しましたが、ユーザーがXをクリックしてもエラーになります。 FirebugのURLにPOSTが表示されていますが、ajaxコールでエラーがスローされます。 – Hanny

+0

どちらのエラー?直接私たちに見せてもらえますか? – sarcom

答えて

0

:あなたが定義されていないコール `data`に渡しているので

$('body').on('click', '#deletePictureTrigger', function(event){ 
    event.preventDefault(); 
    var data = new FormData(); 
    data.append('ajax', 1); 
     $.ajax({ 
      url: window.location.href+"?deletePicture=1", 
      type: 'GET', 
      data: data, 
      cache: false, 
      //dataType: 'json', 
      processData: false, 
      contentType: false,    
      //enable for saving on 'add to cart' 
      //async: true, 
      success: function(data, textStatus, jqXHR) 
      { 
       $('#preview-img0').remove(); 
       $('#customImages').remove(); 

      }, 
      error: function(jqXHR, textStatus, errorThrown) 
      { 
       console.log(jqXHR); 
       alert ("there was an error:"+errorThrown); 
      } 
     }); 

}); 
関連する問題