开发者

How to update js object type variable via ajax?

开发者 https://www.devze.com 2023-03-31 10:27 出处:网络
I have a javascript variable that is created in php echo \"var\".$locallist.\"=\".create_js_variable($locallist,$db2_list_all,\'db2\');

I have a javascript variable that is created in php

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

and it looks in html page source code like

var local开发者_高级运维list={
  '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']]};

Now I want to update the variable on button click via ajax

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

and the ajax calls this php code (note that it's the same php function that is called)

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

Console.log reports that

  • before update the variable is an object
  • after update it is a text

How can I fix that? So my other javascript code works again?


Well, look at your ajax call:

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

Notice you've got the dataType as text? It's going to bring the data in and treat it as text. Try changing the dataType to 'json'. That will convert the data that was brought in to a regular 'ol object, just like what you already have.


Your AJAX-request has a type dataType: 'text', Change it to JSON :)


Use dataType: 'json'.

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

精彩评论

暂无评论...
验证码 换一张
取 消