更新第2部分后,jQuery Datatable将CSS添加到单元格

时间:2018-01-22 15:42:55

标签: javascript jquery css datatables

这是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中创建的变量。

我可以这样做,如果是,怎么做?

1 个答案:

答案 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');
  }
});