JQuery kullanarak bir Ajax isteği yapmak için , bunu aşağıdaki kodla yapabilirsiniz.
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:
Yöntem 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);
}
});
Yöntem 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');
});
.success()
, .error()
Ve .complete()
geri aramalar itibariyle kaldırılıyor jQuery 1.8 . Kodunuzu nihai olarak kaldırılmak üzere hazırlamak için şunu kullanın .done()
:.fail()
ve .always()
bunun yerine.
MDN: abort()
. İstek zaten gönderildiyse, bu yöntem isteği iptal eder.
Bu yüzden başarıyla bir Ajax isteği gönderdik ve şimdi sunucuya veri alma zamanı geldi.
PHP
Bir Ajax çağrısında ( type: "post"
) bir POST isteği yaparken , şimdi $_REQUEST
veya $_POST
:
$bar = $_POST['bar']
Ayrıca POST isteğinde ne elde ettiğinizi de görebilirsiniz. BTW, $_POST
ayarlandığından emin olun . Aksi takdirde bir hata alırsınız.
var_dump($_POST);
// Or
print_r($_POST);
Ve veritabanına bir değer ekliyorsunuz. Sorguyu yapmadan önce Tüm istekleri (GET veya POST yaptıysanız) doğru şekilde hassaslaştırdığınızdan veya kaçtığınızdan emin olun . En iyisi hazırlanan ifadeleri kullanmak olacaktır .
Ve herhangi bir veriyi sayfaya geri döndürmek istiyorsanız, bunu aşağıdaki gibi tekrarlayarak yapabilirsiniz.
// 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'));
Ve sonra şöyle alabilirsiniz:
ajaxRequest.done(function (response){
alert(response);
});
Birkaç steno yöntemi var . Aşağıdaki kodu kullanabilirsiniz. Aynı işi yapar.
var ajaxRequest= $.post("test.php", values, function(data) {
alert(data);
})
.fail(function() {
alert("error");
})
.always(function() {
alert("finished");
});