Also ich habe eine ähnliche Frage hier zuvor gestellt und bekam eine Antwort, die jedoch funktionierte, nachdem ich in meinem Anfängerprojekt und Einführung in Ajax Fortschritte gemacht habe, bin ich auf ein anderes Problem gestoßen. Es scheint, dass der AJAX-Aufruf nicht erfolgreich ist..bis die Seite neu geladen wird. Ich habe dieses Problem vor dem Hinzufügen weiterer Textfelder zu meinem Formular bemerkt, aber ich kann mir nicht vorstellen, wie das zusammenhängen könnte. Eine spätere Abfrage hängt davon ab, ob das Formular erfolgreich übergeben wurde, aber ich möchte nicht, dass der Benutzer die Seite aktualisiert, nur damit diese Daten tatsächlich in die Datenbank übertragen werden. Irgendwelche Vorschläge?jQuery AJAX-Aufruf fehlgeschlagen bis nach der Aktualisierung
<form action="call.php" method="post">
<input class="oomText" type="text" name="accountName" placeholder="Account Name"><br>
<h2 class="oomHead2">Email Notifcations For Phone Calls</h2>
<input class="oomText" type="text" name="accountEmailOne" placeholder="Email Recipient 1*"><br>
<input class="oomText" type="text" name="accountEmailTwo" placeholder="Email Recipient 2*"><br>
<input class="oomText" type="text" name="accountEmailThree" placeholder="Email Recipient 3*"><br>
<h2 class="oomHead2">Text Notifcations For Phone Calls</h2>
<input class="oomText" type="text" name="accountTextOne" placeholder="Text Recipient 1*"><br>
<input class="oomText" type="text" name="accountTextTwo" placeholder="Text Recipient 2*"><br>
<input class="oomText" type="text" name="accountTextThree" placeholder="Text Recipient 3*"><br>
<small>*Fields are <b>not</b> required to be filled out</small><br>
<input class="oomButton submit" type="submit" name="submit" value="submit">
<script>
$(document).ready(function(){
$('.oomButton.submit').click(function(){
var clickBtnValue = $(this).val();
var ajaxurl = 'http://clients.oomdo.com/provision/ajax.php',
data = {'action': clickBtnValue};
$.post(ajaxurl, data, function (response) {
alert("Account Created");
});
});
});
</script>
</form>
..Later auf in der PHP-Datei
if ($_SESSION['submitted'] == true){
// do something
}
ajax.php
<?php
session_start();
if (isset($_POST['action'])) {
switch ($_POST['action']) {
case 'submit':
submit();
echo 'Hurrah';
}
}
function submit() {
$_SESSION['submitted'] = true;
}
?>
'data = { 'action': clickBtnValue};' sollte nur sein 'data = {Aktion: clickBtnValue};' – larsAnders
Haben Sie die AJAX-Request/Response in der schaut Browser-Entwickler-Tools? Werden Fehler gemeldet? Laufen Sie das auf einem Webserver? –
Sie haben ein Postformular mit einem Absenden-Button und dann senden Sie auch über den Ajax. Dies ist redundant. Wenn Sie nicht möchten, dass die Seite aktualisiert wird, können Sie das Formular beenden, aber die Eingabefelder lassen, die Informationen in das Datenobjekt sammeln und über Ajax posten. Keine Form notwendig. – nurdyguy