Dies wird wahrscheinlich rückwärts klingen. Ich brauche für ein Formular die Rückgabe false, sende aber trotzdem das Formular ein.Submit Return False, aber immer noch Formular einreichen - PHP, Javascript, AJAX, CodeIgniter
Ich habe ein Formular über Ajax in eine Seite gezogen (jquery load function), und am submit würde ich gerne eine Grafik und etwas Text im selben div anzeigen, anstatt die Seite umzuleiten.
Dies ist meine Submit-Button (codeigniter):
<?php $attributes = array('class' => 'button', 'onclick' => 'form_success_client(); return false;', 'name' => 'submit'); echo form_submit($attributes, 'Save'); ?>
und in html:
<input type="submit" onclick="form_success(); return false;" class="button" value="Save" name="submit">
und die JavaScript-Funktion, die die Erfolgsmeldung lädt:
function form_success_client() { // form success
$('.contentarea').load("/mm/index.php/site/form_success_client/");
}
, dass alle funktioniert gut, aber es ist nicht überraschend, dass es das Formular nicht einreicht. Ich weiß, dass der richtige Weg, dies zu tun, darin besteht, die Formularübergabe an jQuery zu übergeben, aber ich bin mir nicht sicher, wie ich das machen soll. Könnte mit einer schnellen Lösung wenn möglich tun (bis ich Zeit habe, eine bessere Lösung zu sortieren), aber alle Vorschläge geschätzt.
Danke!
ANTWORT:
Dies ist, was für mich gearbeitet, nur eine leichte Bearbeitung 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 $() Umwickeln obj auf URL und Daten.
was wird, dass return false tun? Was auch immer daraus resultiert, wird immer aufgerufen werden. ist es? – zod