使用Javascript从Ajax调用得到结果之前执行 [英] Javascript executes before getting result from a ajax call

查看:107
本文介绍了使用Javascript从Ajax调用得到结果之前执行的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有以下的code这显示会议data.The问题时面对的是即使会话具有价值和阿贾克斯获得这些数据,我已经把下面的函数调用getValFromSession警报(QES)始终显示为空data.I认为这是由于AJAX的异步执行与在javascript.So我把一些额外的code,如图中的功能
getValFromSession(QID)我。如何克服这个异步问题?

  VAR QES = $('#qsid _'+ Q).VAL();
VAR解析度= getValFromSession(QES);

警报(RES); //总是显示null值

$('#选择_'+)VAL(parseInt函数(RES))。


功能getValFromSession(QID)
{
 返回$阿贾克斯({
       网址:site_url_js +控制器/ getValFromSession
       键入:POST,
       数据:QID =+ QID,
       缓存:假的,
       异步:假的
})responseText的;
}

/ *控制器* /
功能getValFromSession()
{
   回声$ _SESSION ['时间'] [$ _ REQUEST ['QID'];
}
 

解决方案

试试这个:

  VAR QES = $('#qsid _'+ Q).VAL();
VAR解析度= getValFromSession(QES);

功能getValFromSession(QID)
{
   $阿贾克斯({
       网址:site_url_js +控制器/ getValFromSession
       键入:POST,
       数据:QID =+ QID,
       缓存:假的,
       异步:假的,
       成功:功能(数据){
            警报(数据); //提醒在这里successHandler
            $('#选择_'+)VAL(parseInt函数(数据))。
       }
   })
}

/ *控制器* /
功能getValFromSession()
{
   回声$ _SESSION ['时间'] [$ _ REQUEST ['QID'];
}
 

希望这有助于。

I have the following code which displays session data.The problem am facing is even if the session has value and the ajax get that data the alert that I have put below the function call getValFromSession(qes) always shows null data.I think this is due to the asynchronous execution of ajax with in the javascript.So I put some extra code as shown in the function
getValFromSession(qid).How can I overcome this asynchronous issue?

var qes=$('#qsid_'+q).val();
var res=getValFromSession(qes);

alert(res);//always shows null value

$('#select_'+).val(parseInt(res));   


function getValFromSession(qid)
{
 return $.ajax({
       url  : site_url_js+"controller/getValFromSession",
       type : "POST",
       data : "qid="+qid,   
       cache: false,
       async:   false
}).responseText;
}

/*controller*/
function getValFromSession()
{
   echo $_SESSION['time'][$_REQUEST['qid']];
}

解决方案

Try this:

var qes=$('#qsid_'+q).val();
var res=getValFromSession(qes);

function getValFromSession(qid)
{
   $.ajax({
       url  : site_url_js+"controller/getValFromSession",
       type : "POST",
       data : "qid="+qid,   
       cache: false,
       async:   false,
       success: function(data) {
            alert(data); // alert here in successHandler
            $('#select_'+).val(parseInt(data)); 
       }
   })
}

/*controller*/
function getValFromSession()
{
   echo $_SESSION['time'][$_REQUEST['qid']];
}

Hope this helps.

这篇关于使用Javascript从Ajax调用得到结果之前执行的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆