javascript - 如何通过ajax更新js对象类型变量?

标签 javascript jquery

我有一个在php中创建的javascript变量

echo "var".$locallist."=".create_js_variable($locallist,$db2_list_all,'db2');

它看起来像 html 页面源代码

var locallist={
  'CARINYA':[['2011-08-24-09-22 - w','20110824092216w'],['2011-08-18-13-15','20110818131546']],
  'COVERNAN':[['2011-03-02-12-28','20110302122831']],
  'DAVID':[['2010-12-22-19-43','20101222194348'],['2010-12-08-14-10','20101208141035']]};

现在我想通过ajax更新按钮点击时的变量

    jQuery.ajax({
        type: 'get',
        dataType: 'text',
        url: url,
        data: {
            what: 'db2list', 
            t: Math.random() 
        },
        success: function(data, textStatus){
            locallist = data;                   
            console.log(locallist);
        }
    });

并且ajax调用此php代码(请注意,它与调用的php函数相同)

if($what == 'db2list') {
    $db2_list_all = get_db2_database_list();
    echo create_js_variable($locallist,$db2_list_all,'db2');
}

Console.log 报告

  • 更新之前变量是一个对象
  • 更新后它是一个文本

我该如何解决这个问题?那么我的其他 javascript 代码又可以工作了吗?

最佳答案

好吧,看看你的 ajax 调用:

jQuery.ajax({
    type: 'get',
    dataType: 'text',
    url: url,
    data: {
        what: 'db2list', 
        t: Math.random() 
    },
    success: function(data, textStatus){
        locallist = data;                   
        console.log(locallist);
    }
});

注意到你的数据类型是文本吗?它将引入数据并将其视为文本。尝试将数据类型更改为“json”。这会将引入的数据转换为常规的 'ol 对象,就像您已经拥有的那样。

关于javascript - 如何通过ajax更新js对象类型变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7200766/

相关文章:

javascript - 查找特定时间内两个值之间的值

javascript - 使用 jQuery 自定义 JavaScript 分页元素的标签

javascript - 每次 jQuery 绑定(bind)到点击事件时,我如何创建一个函数来 console.log 详细信息?

javascript - 当我按 Enter 键时,表单不会调用 javascript 函数

jquery - 仅输入浮点值

javascript - 使用 jQuery 读取 JSON 数组

javascript - 只想在用户单击 html 表单上的提交时显示绿色复选标记

javascript - 如何从谷歌地图API将经度和纬度值设置为其他位置?

javascript - 使用下划线将两个键和值数组合并到一个对象

javascript - 将类添加到编辑器中的 pre 和代码元素?