Submit False Zurück, Aber immer Noch Formular Senden PHP, Javascript, AJAX, CodeIgniter
Dies ist wahrscheinlich Klang rückwärts. Ich brauche für ein Formular Einreichen false zurück, aber immer noch das Formular abschicken.
Habe ich eine form gezogen, in eine Seite via ajax (jquery-load Funktion), und auf "Absenden" ich würde gerne eine Grafik anzeigen und text in der selben div, anstatt die Umleitung der Seite.
Dies ist mein submit-button (codeigniter):
<?php $attributes = array('class' => 'button', 'onclick' => 'form_success_client(); return false;', 'name' => 'submit'); echo form_submit( $attributes, 'Save'); ?>
und im html-Format:
<input type="submit" onclick="form_success(); return false;" class="button" value="Save" name="submit">
... und die javascript-Funktion lädt die Erfolgsmeldung:
function form_success_client() { //form success
$('.contentarea').load("/mm/index.php/site/form_success_client/");
}
Dass alles Prima funktioniert, aber unsurprisngly es nicht das Formular abschicken. Ich weiß, dass der richtige Weg, dies zu tun, ist die übergabe der Formulardaten über jquery, aber ich bin mir nicht sicher, wie das zu tun. Tun konnte, mit einem quick-fix, wenn möglich (bis ich Zeit zum Sortieren eine bessere Lösung), aber alle Vorschläge dankbar.
Dank!
ANTWORT:
Dies ist was für mich gearbeitet, nur eine leichte Bearbeiten von Maggies Antwort:
function form_success_client(obj) {
$.ajax({
type: 'POST',
url: $(obj).attr('action'),
data: $(obj).serialize(),
success: function(msg){
$('.contentarea').load("/mm/index.php/site/form_success_client/");
}
});
return false;
}
Beachten Sie die $ () - Verpackung obj auf url und Daten.
- was ist das return false tun? Was auch immer das Ergebnis, es wird immer genannt . ist es?
Du musst angemeldet sein, um einen Kommentar abzugeben.
binden Sie Ihre JS-onclick-Ereignis der form (nicht der button), wie dies
'onclick' => 'form_success_client(this); return false;'
und ändern Sie Ihre Funktion
ungetestet
$(obj)
als Sie herausgefundenMögliche Lösung. Ich Klebe an deinem code
EDIT: Und ja, als maggie sagte, Sie sollten binden
form_success_client(this); return false;
wienicht auf die Schaltfläche
Können Sie jquery verwenden .post .bekommen oder .ajax
basierend auf ERFOLG oder zurückgegebenen Daten können Sie das Formular abschicken
http://api.jquery.com/jQuery.get/
http://api.jquery.com/jQuery.post/
http://api.jquery.com/jQuery.ajax/