这是a previous question的后续行动。
我需要做的是仅在进程成功更新记录后为单元格着色。
$('#example1').on('blur', 'tr > td > .editForecast', function(e)
{
e.preventDefault();
var forecastnewval = $(this).val();
var processData = '';
if(this.value !== $(this).attr('value'))
{
$.post('api/inlineEditProcess.php', {forecastnewval:forecastnewval}, function(data)
{
processData = data; // this is what I'm trying to get now
console.log('this is inside ' + processData); // this prints processData
}
console.log('this is outside ' + processData); // this does not print processData
$(this).css('background-color', '#99FF66'); // this changes the background color of the cell
}
else
{
console.log('nothing changed');
}
});
如果您在上面的代码中注意到,我正在尝试从$ .POST中检索变量processData并在另一个IF / ELSE语句中使用它。
变量processData将是一个读取“成功”或“失败”的字符串。这显然来自运行UPDATE查询的PHP进程脚本,然后返回指定的单词。
我想在IF / ELSE中使用processData,它会将单元格的背景颜色更改为绿色(表示成功)或红色(表示失败)。
我只想检索从$ .POST中创建的变量。
我可以这样做,如果是,怎么做?
答案 0 :(得分:2)
您的变量processData
包含在函数中,因此在其外部进行评估时将返回null
。
$('#example1').on('blur', 'tr > td > .editForecast', function(e) {
e.preventDefault();
var forecastnewval = $(this).val();
var processData = "";
if (this.value !== $(this).attr('value')) {
$.post('api/inlineEditProcess.php', {
forecastnewval: forecastnewval
}, function(data) {
processData = data; // this is what I'm trying to get now
});
console.log(processData); // this does not print processData
$(this).css('background-color', '#99FF66'); // this changes the background color of the cell
} else {
console.log('nothing changed');
}
});