Jquery Post + php Datei - > ausblenden der form > gib Meldung
hier ist mein code zu jquery-post. Ich kann nicht damit es funktioniert irgendwie. Ich verbrachte Stunden 🙁 was vermisse ich hier?! wenn ich den code ausführen, lädt die gleiche Seite 🙁
Ich soll es zum ausführen des php-Codes unter
Abfrage.php-und ausblenden der Kontakt-Formular
und "danke!" - Nachricht zu senden
submit-button klicken. (ohne Seite
laden)
schätzen wissen hilft!
PHP-Formular
<form id="commentForm" name="contact" method="post" action="">
<ul id="contact-form">
<li><label>Full Name: *</label><input type="text" name="full_name" class="txt_input required" /></li>
<li><input type="submit" value="Send" id="btnsend" name="btnsend" class="btn_submit" /></li>
</ul>
</form>
SKRIPT
$(function() {
$("#btnsend").click(function() {
var dataString = 'fullname='+ escape(full_name);
$.ajax({
type: "POST",
url: "query.php?act=contact",
data: dataString,
success: function() {
$('#contact-form').hide();
$('#contact-form').html("<p>thanks!</p>")
.fadeIn(1500, function() {$('#contact-form').append("");});
}
});
return false;
});
});
- Das <label> - element ist ziemlich nutzlos. Es gibt kein Attribut und kein input drin.
- Was versuchen Sie zu tun?
- das Label-element ist nicht enthalten soll, der input, noch braucht es eine für Attribut.
- Siehe w3.org/TR/html4/interact/forms.html#h-17.9.1 — wenn Sie ein Attribut für das label ist verbunden mit dem element, das eine id entspricht, die für das Attribut. Ansonsten ist das label im Zusammenhang mit dessen Inhalt. In diesem Fall, die Bezeichnung ist nicht verbunden mit irgendeiner form Kontrolle, was ihn nutzlos macht.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dein problem liegt in:
var dataString = 'fullname='+ escape(full_name);
Versuchen:
var dataString = 'fullname='+ escape(document.contact.full_name.value);
ZB:
Stellen Sie sicher
query.php
existiert, obwohl sonst es wird nicht führen Sie den call-back-Funktion auf Erfolg.Auch sicherstellen, dass Sie klicken Sie auf die Schaltfläche und betätigen Sie die
ENTER
Schlüssel da, die senden das Formular normal (Sie haben nur definiert einen event-handler für das klicken nicht keypress)Können Sie preventDefault auf die Schaltfläche klicken oder die return-false, auf die form der submit-Ereignis:
oder:
Versuchen:
Ich denke, dass Sie mindestens 3 Probleme hier. Ersten, die Sie verweisen, full_name, als ob es eine variable. Ich glaube, dies verursacht einen javascript-Fehler, bricht die Funktion ab und ermöglicht die default-Aktion (post), um fortzufahren. Zweitens, werden Sie wahrscheinlich benötigen, um die Codierung ALLER von der form-Parameter, einschließlich
act
. Dies ist möglicherweise die Ursache eine ungültige URL gesendet werden und somit die Aktion scheinbar nicht aufgerufen worden-Sie können dies überprüfen, indem man die Anfrage gesendet wird mit Firefox/Firebug. Dritte, die Sie versuchen, ersetzen Sie den Inhalt einer Liste mit einem Absatz-element. Das ist ungültiges HTML. Ich würde ersetzen Sie die gesamte Liste mit dem Absatz (und ich verstehe nicht, was das anfügen einer leeren Zeichenfolge am Ende, so hab ich es weggelassen).Hinweis, ich habe mich verändert in dieser Arbeit auf das submit-Ereignis des Formulars-also, es wird nicht egal, wie es gesendet wurde. Erlaubt auch mir ein wenig jQuery Nettigkeit in nicht mit, um sich die form wieder.
Dies ist mein Weg zum aufrufen der PHP-Funktion direkt via jQuery
PHP-Datei thisisphp.php
Kann diese Ihnen helfen?
PS: Sie können Ihre investieren wollte, verheimlichte und zeigt Formular-Skript in onSucces und onError-Funktionen.