我想申请的getStatus
功能就在这里:通AJAX数据到另一个功能
function getStatus(id)
{
$.ajax({
method: "POST",
url: '<?php echo base_url('marketplace/get_store_status'); ?>/'+id,
dataType: 'json',
success: function(data){
return data.status;
}
});
}
进入这个功能就在这里:
$('#store-status').click(function() {
var id = getStatus(<?php echo $vendor->store_id; ?>);
if (id == 1) {
$('#btn-status')
.removeClass('btn-danger')
.addClass('btn-primary')
.text('Activate');
} else {
$('#btn-status')
.removeClass('btn-primary')
.addClass('btn-danger')
.text('Deactivate');
}
console.log(id);
$('#modal-status').modal('show');
});
但是当我登录的id
变量的元素点击功能进入控制台,它显示undefined
。
但是,当我从getStatus函数本身记录成功数据时,它显示正确的数据。我在代码中做错了什么?
在<?php echo $ vendor-> store_id中返回什么值? ?>'? – Black
曾听说过回调 – Beginner
Ajax中的getStatus代表异步。这意味着发送请求(或接收响应)将从正常执行流程中取出。在你的例子中,$ .ajax立即返回,并且在成功回调函数传递的函数被调用之前执行下一条语句return result;。 **可能的解决方案** 基本上有两种方法可以解决这个问题: 使AJAX调用同步(让我们称它为SJAX)。 重构您的代码以使用回调正常工作。 – user3790694