我有以下显示 session 数据的代码。我面临的问题是,即使 session 具有值并且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']];
}
希望这有帮助。
关于php - Javascript 在从 ajax 调用获取结果之前执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12560879/