如果AJAX返回true,则执行某些操作

时间:2017-03-09 17:13:05

标签: jquery css json ajax get

我正在使用AJAX调用以JSON格式从PHP文件中接收一些数据,并且如果该数据的一部分是真的,我想更改元素的颜色。

我已经尝试过这样做(async:false): Submit form if ajax validator returns true using jquery

但它确实能够正常工作。

$.ajax({ 
  url: 'preveri.php',
  data: {
    "row": row, 
    "col": col
  },
  type: 'GET',
  dataType: 'json',
  async: false,
  success: function( data ){
    var jsonstuff = data;
    var trys = data.trys[0];
    var result = data.result[0];
    var finished = data.finished[0];

    if (result == "true") {
      $(this).attr("style", "background-color: green");
    } else {
      $(this).attr("style", "background-color: red");
    }
  }
});

我在AJAX调用之前尝试过使用它,所以它肯定有效:

$(this).attr("style", "background-color:red");

我还尝试用元素的ID替换this,但它也没有用。我还尝试将result作为全局变量,而不是在ajax之后调用if - else。

PHP中的JSON数据是:

    $data = array();
    $data['result'] = array($Result);
    $data['trys'] = array($trys);
    $data['finished'] = array($finished);
    $myJSON =  json_encode($data);

1 个答案:

答案 0 :(得分:0)

首先你必须定义你$(这个)golbal并尝试下面的代码

var this_var =$(this);
$.ajax({ 
url: 'preveri.php',
data: {"row": row,"col": col},
type: 'GET',
dataType: 'json',
success: function( data ){
var jsonstuff = data;
var trys = data.trys[0];
var result = data.result[0];
var finished = data.finished[0];
 if (result == "true") {this_var.css("background-color","green");} else {this_var.css("background-color","red");}}});