我有下面的代码显示会话数据。面临的问题是即使会话具有值并且ajax获取该数据,我放在函数调用getValFromSession(qes)下面的警报始终显示空数据。我认为这是由于javascript中Ajax的异步执行,因此我在函数中添加了一些额外的代码
getValFromSession(qid)。如何克服此异步问题?

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']];
}

最佳答案

尝试这个:

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']];
}


希望这可以帮助。

07-24 09:31