2016-10-11 6 views
0

Die Standardmethode ein Benutzer hochgeladene Bild zeigt löschen, zeigt eine kleine schwarze X, der so aussieht (das Bild zu löschen):Prestashop: Benutzer hochgeladene Datei via AJAX statt Nachladen Seite

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

Wenn der Benutzer Wenn Sie auf diese Schaltfläche klicken, wird die Seite neu geladen und die vom Benutzer hochgeladene Datei wird gelöscht.

Ich kann nicht herausfinden, wo der Code ist, der diese Datei löscht - also dachte ich, vielleicht AJAX wäre ein besserer Weg, um darüber zu gehen. Plus, nur für den Fall, dass der Benutzer Informationen auf der Seite eingegeben hat, müssen sie nicht erneut eingegeben werden.

änderte ich den kleinen schwarzen X dazu:

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

Dies funktioniert und eine Warnung erscheint:

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

ich dies auch in product.js hinzugefügt.

Was wäre der beste Weg, um dies fortzusetzen?

Würde es so etwas sein? :

Wo ist die Methode deletePicture, die aufgerufen wird, wenn diese Seite angefordert wird?

Ich möchte dies automatisieren, damit der Ajax es löscht, ohne die Seite neu zu laden.

+0

Der ‚Fehler‘ Sie bekommen, weil Sie auf den Aufruf sind vorbei 'data' dass :) nicht definiert ist. Zeile # 6 Ihres Codes. Bei Erfolg können Sie eine Nachricht für den Benutzer hinzufügen, und entfernen Sie das Element aus dem Dom – sarcom

+0

Ich entfernte das Datenelement - aus dem AJAX-Aufruf und fügte Warnungen zu Erfolg und Fehler - aber es ist immer noch Fehler, wenn der Benutzer auf das X klickt. Ich kann es POST an die URL in Firebug sehen, aber dann wirft der Ajax-Aufruf den Fehler. – Hanny

+0

Welcher Fehler? Können Sie uns erlauben, direkt zu sehen? – sarcom

Antwort

0

Ich hatte einige Änderungen an meinem Ajax-Aufruf wie folgt zu machen:

$('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); 
      } 
     }); 

}); 
Verwandte Themen