2017-06-27 2 views
0

Ich versuche, einige PHP-Code ohne Aktualisierung der Seite mit einem Formular und Ajax auszuführen. Aber es aktualisiert nur die Seite, ohne zu versuchen, die Ajax-Funktion auszuführen. Es soll etwas einfach fehlen, weil diese exakt gleiche Code für andere Formen gearbeitet, auch auf der gleichen Seite (mit unterschiedlichen Namen)Ajax-Formular lädt die Seite neu, anstatt den Ajax-Code aufzurufen

HTML-Formular:

<form class='ajax_file_remove_form'> 
    <input type='hidden' name='ind' value='0'> 
    <input type='hidden' name='type' value='image'> 
    <input type='submit' class='ajax_file_remove_form_submit' name='remove_file' 
    value='Remove' style='height: 100%'> 
</form> 

Javascript-Datei, innen $(document).ready(function() {});:

$('.ajax_file_remove_form').off().on("submit", function (e) { 
    console.log("ATTEMPT AJAX FILE REMOVE"); 
    e.preventDefault(); 
    e.stopImmediatePropagation(); 
    var form = $(this); 
    var data = new FormData(form[0]); 

    $.ajax({ 
      url: "../ajax_file_remove.php", 
      type: "POST", 
      cache: false, 
      contentType: false, 
      processData: false, 
      data: data, 
      success: function (data) { 
       console.log("AJAX FILE REMOVED"); 
       console.log(data); file_preview(data); 
      } 
     }); 
}) 

Die Konsole sagt nur navigierte & type = image & remove_file mySite.com/?ind=0 = entfernen

statt FILE von VERSUCH Ajax

Ich versuchte, die form method = ‚post‘ zu machen, aber es erfrischt immer noch nur die Seite, und die Ajax-Funktion sagt schon „POST“

$ Auch versucht ('.ajax_file_remove_form_submit'). off(). on ("click", function (e) oder um die .off() oder andere Dinge zu entfernen, von denen ich nicht sicher bin, dass sie hier gebraucht werden.

Thanks :)

+1

Die einfache Sache zu tun ist, nicht zu haben, kblau

+0

hmm, aber dann ist es nicht auslösen das Ereignis vorlegen, so dass ich versuchte, Verwenden Sie das Click-Ereignis auf der Schaltfläche und schien nicht zu funktionieren – ioan

+0

Sie legen einen Formular-Listener für Post und Aufruf von Ajax. Habe eine klare Trennung von Post und Ajax. Sie möchten ajax, also weisen Sie dem ajax einen

Antwort

0

Nach der Dokumentation - http://api.jquery.com/off/

.off() Remove an event handler. 

.off() Funktion in

$('.ajax_file_remove_form').off().on("submit", function (e) { 

fehl am Platze ist, ich denke, dass Sie die .off Funktion setzen oder verwenden sollten, wenn diese Ajax ist erfolgreich.

$.ajax({ 
     url: "../ajax_file_remove.php", 
     type: "POST", 
     cache: false, 
     contentType: false, 
     processData: false, 
     data: data, 
     success: function (data) { 
      console.log("AJAX FILE REMOVED"); 
      console.log(data); file_preview(data); 
     } 
    }); 
+0

Ich habe versucht, die off-Funktion zu entfernen, aber es hat nichts geändert .. Früher hatte ich ein Problem, wo es die Ajax-Funktion 3 mal von 1 Klick ausgeführt wurde.so fand ich die Lösung in einer anderen Frage zu stellen .off() dort und es hat funktioniert – ioan

+0

url: "../ajax_file_remove.php" ---- ist das der richtige Pfad der PHP-Datei? Können Sie versuchen, die Fehlerbehandlung für den Ajax hinzuzufügen und zu sehen, ob es fehlschlägt? : Funktion (xhr, textStatus, errorThrown) { } }) –

+0

Ja, aber ich glaube nicht, dass es so weit in den Code kommt, weil console.log ("ATTEMPT AJAX FILE REMOVE") nicht angezeigt wird die Konsole – ioan

Verwandte Themen