0

我在一个 php 文件中创建了两个 JSON。

  1. $response = array('invalid' => true);
  2. $response = array('valid' => true);

现在我创建一个ajax并尝试根据json更改输入框的类。

$.ajax({
    type: "GET",
    url: '/script/validate_email.php',
    data: {i_emial:val_i_email},
    cache: false,
    success: function (data) { 
            $('#div118').html(data);
            if (response.valid == true) {
            // remove previous class and add another class
            } else {
            // remove previous class and add another class
            }
    }
});

但它不起作用。怎么解决?

但#div118 中的结果数据显示:{"invalid":true}{"valid":true}

编辑:忘记提及我使用header('Content-Type: application/json');

4

1 回答 1

1

response未在您的代码中定义。您还必须将响应(JSON)解析为 JavaScript 对象,或者让 jQuery 知道为您执行此操作:

$.ajax({
    // ...
    dataType: 'json', // <- let jQuery know which data format to expect
    success: function (data) { // <- you define data here
        if (data.valid) { // <- data, not response; no need to compare
            // remove previous class and add another class
        } else {
            // remove previous class and add another class
        }
    }
});

甚至更好:如果您在 PHP 中为 JSON 设置适当的内容类型标头, jQuery(和其他服务)可以确定发送响应的数据格式。

于 2013-05-02T02:55:18.463 回答