Um eine Ajax-Anfrage mit jQuery zu stellen , können Sie dies mit dem folgenden Code tun.
HTML:
<form id="foo">
<label for="bar">A bar</label>
<input id="bar" name="bar" type="text" value="" />
<input type="submit" value="Send" />
</form>
<!-- The result of the search will be rendered inside this div -->
<div id="result"></div>
JavaScript:
Methode 1
/* Get from elements values */
var values = $(this).serialize();
$.ajax({
url: "test.php",
type: "post",
data: values ,
success: function (response) {
// You will get response from your PHP page (what you echo or print)
},
error: function(jqXHR, textStatus, errorThrown) {
console.log(textStatus, errorThrown);
}
});
Methode 2
/* Attach a submit handler to the form */
$("#foo").submit(function(event) {
var ajaxRequest;
/* Stop form from submitting normally */
event.preventDefault();
/* Clear result div*/
$("#result").html('');
/* Get from elements values */
var values = $(this).serialize();
/* Send the data using post and put the results in a div. */
/* I am not aborting the previous request, because it's an
asynchronous request, meaning once it's sent it's out
there. But in case you want to abort it you can do it
by abort(). jQuery Ajax methods return an XMLHttpRequest
object, so you can just use abort(). */
ajaxRequest= $.ajax({
url: "test.php",
type: "post",
data: values
});
/* Request can be aborted by ajaxRequest.abort() */
ajaxRequest.done(function (response, textStatus, jqXHR){
// Show successfully for submit message
$("#result").html('Submitted successfully');
});
/* On failure of request this function will be called */
ajaxRequest.fail(function (){
// Show error
$("#result").html('There is error while submit');
});
Die .success()
, .error()
und .complete()
Rückrufe sind veraltet wie von jQuery 1.8 . Um den Code für ihre spätere Entfernung vorzubereiten, verwendet .done()
, .fail()
und .always()
stattdessen.
MDN: abort()
. Wenn die Anfrage bereits gesendet wurde, bricht diese Methode die Anfrage ab.
Wir haben also erfolgreich eine Ajax-Anfrage gesendet, und jetzt ist es Zeit, Daten an den Server zu übertragen.
PHP
Während wir eine POST-Anfrage in einem Ajax-Aufruf ( type: "post"
) stellen, können wir jetzt Daten mit entweder $_REQUEST
oder abrufen $_POST
:
$bar = $_POST['bar']
Sie können auch einfach sehen, was Sie in der POST-Anfrage erhalten. Übrigens, stellen Sie sicher, dass $_POST
eingestellt ist. Andernfalls erhalten Sie eine Fehlermeldung.
var_dump($_POST);
// Or
print_r($_POST);
Und Sie fügen einen Wert in die Datenbank ein. Stellen Sie sicher, dass Sie alle Anforderungen (unabhängig davon, ob Sie ein GET oder ein POST durchgeführt haben) ordnungsgemäß sensibilisieren oder entkommen, bevor Sie die Abfrage durchführen. Am besten verwenden Sie vorbereitete Aussagen .
Und wenn Sie Daten auf die Seite zurückgeben möchten, können Sie dies tun, indem Sie diese Daten wie unten beschrieben wiederholen.
// 1. Without JSON
echo "Hello, this is one"
// 2. By JSON. Then here is where I want to send a value back to the success of the Ajax below
echo json_encode(array('returned_val' => 'yoho'));
Und dann können Sie es bekommen wie:
ajaxRequest.done(function (response){
alert(response);
});
Es gibt einige Kurzmethoden . Sie können den folgenden Code verwenden. Es macht die gleiche Arbeit.
var ajaxRequest= $.post("test.php", values, function(data) {
alert(data);
})
.fail(function() {
alert("error");
})
.always(function() {
alert("finished");
});