zurückholen Ich benutze jQuery mit Ajax, um ein Formular an ein PHP-Skript zu senden.Ajax, um Formular zu übermitteln, und Erfolg/Fehler
Der Benutzer wird ihre Details eingeben, klicken Sie auf eine Schaltfläche Absenden, das PHP-Skript wird ausgeführt und entweder die gewünschte Aktion ausgeführt oder fehlgeschlagen.
An dieser Stelle möchte ich eine Erfolgs- oder Fehlermeldung basierend auf der Art des Fehlers anzeigen.
<script>
$("#contact-form").submit(function(event) {
event.preventDefault();
$.ajax({
url: "includes/contact-us.php",
type: "post",
data: $("#contact-form").serialize(),
success:function(data) {
alert(data);
},
error:function(){
alert("failure");
}
});
});
</script>
Also in meinem jQuery oben, wenn das Formular abgeschickt wird, verhindert es die Standard-action="path to script.php"
führt dann die einreichen. Ich habe dies in den Fällen gemacht, in denen Benutzer Javascript deaktiviert haben, so dass zumindest die Basisfunktionalität da sein wird.
PHP
<?php
if(isset($_POST['contact']) && !empty($_POST['contact'])){
$link = new mysqli("example", "example", "example", "example");
if($link->connect_errno > 0) {
die('Unable to connect to database [' . $link->connect_error . ']');
}
$name = $_POST['name'];
$email = $_POST['email'];
$website = $_POST['website'];
$subject = $_POST['subject'];
$message = $_POST['message'];
$stmt = $link->prepare("INSERT INTO contact (name, email, website, subject, message) VALUES (?, ?, ?, ?, ?)");
$stmt->bind_param("sssss", $name, $email, $website, $subject, $message);
if($stmt->execute()){
$rtn = "Success";
echo json_encode($rtn);
} else {
$rtn = "Failed";
echo json_encode($rtn);
}
$stmt->close();
$link->close();
}
jedoch in diesem Beispiel erscheint ein Warnfeld leer. Keine Fehler in Firebug oder Apache-Logs.
Ist es möglich: Wenn ich einen Submit mit Ajax durchführe, kann ich einen echo "Text from error or success box";
erhalten, den ich dann in einen Bootstrap-Alarm setzen kann?
Der Code, den ich schreibe, ist neu, also würde ich mich an neue Bibliotheken anpassen. Dies ist nur für die UI-Erweiterung, um Fehler oder Erfolgsmeldungen anzuzeigen, wenn der Benutzer JavaScript deaktiviert hat, dann würde die Standardaktion des Formulars nicht verhindert werden - sie würden einfach keine Erfolgs- oder Fehlermeldung sehen.
Etwas, was ich gesehen habe, ist "Javascript promises" Ich habe nichts dagegen, Javascript zu verwenden, wenn das in Bezug auf die Benutzerfreundlichkeit besser ist, da ich den Browser nicht einfrieren will, wenn ein Submit stattfindet.
Vielen Dank für Ihre Zeit
Ich sehe, das ist, was ich suche.Das einzige Problem ist, auf der "Daten = JSON.parse (Daten);" Ich bekomme einen Fehler in Firebug, der liest "SyntaxError: JSON.parse: unerwartetes Ende der Daten in Zeile 1 Spalte 1 der JSON-Daten" – PublicDisplayName
Dann muss es falsch von PHP kommen. Wenn Sie eine alte Version von PHP haben, müssen Sie stattdessen diese Terminologie verwenden: array ("Erfolg" => wahr); Wenn noch Probleme, console.log (Daten) vor und nach dem Parsen und poste es hier. –
Am Ende funktionierte es, mit einem google recaptcha-Element etwas zu optimieren. Vielen Dank für Ihre Zeit! – PublicDisplayName