Hai, saya perlu menyimpan Respons AJAX ke dalam dua variabel x dan y atau ke dalam sebuah array. Respons AJAX saya adalah sebuah array. Saya dapat melihat data tersebut namun hanya dengan dan alert ke dalam panggilan ajax. Saya membutuhkan data di luar pemanggilan ajax
var x;
var y;
$.ajax({
url: 'ajaxload.php',
dataType: "json",
success: function (data) {
x = data.posX;
y = data.posX;
alert(x + " " + y); // I can se data but I need outside ajax call
}
});
Jika saya mengerti dengan benar, Anda ingin menggunakan kembali respons ajax nanti di dalam kode Anda. Jika demikian, kode Anda saat ini tidak akan berfungsi karena secara default, mesin javascript tidak menunggu respons dari permintaan ajax. Dengan kata lain, kode di bawah ini tidak akan berfungsi:
<script type="text/javascript">
$(document).ready(function(){
var x;
var y;
$.ajax({
url: 'ajaxload.php',
dataType: "json",
success: function(data) {
x= data.posX;
y= data.posX;
alert (x+" "+y); // I can se data but I need outside ajax call
}
});
alert(x+" "+y); // You won't see anything, because this data isn't yet populated. The reason for this is, the "success" function is called when the ajax request has finished (it has received a response).
})
</script>
Anda harus menunggu respons ajax. Untuk melakukannya dengan jQuery, Anda perlu sedikit memodifikasi kode Anda:
<script type="text/javascript">
$(document).ready(function(){
var data = $.parseJSON($.ajax({
url: 'ajaxload.php',
dataType: "json",
async: false
}).responseText); // This will wait until you get a response from the ajax request.
// Now you can use data.posX, data.posY later in your code and it will work.
var x = data.posX;
var y = data.posY;
alert(x+" "+y);
alert(data.posX+" "+data.posY);
});
</script>
jika Anda mendeklarasikan variabel, Anda dapat mengakses nilai di luar ajax.
contoh:
<script type="text/javascript">
var x = '';
var y = '';
function sendAjax()
{
// your ajax call
x= data.posX;
y= data.posX;
}
sendAjax();
</script>
jika ajax bekerja dengan baik, Anda dapat mengakses variabel x dan y secara global