У меня есть переменная javascript , созданная в php
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 снова работает?
3 ответа
Что ж, посмотрите на свой вызов ajax:
jQuery.ajax({
type: 'get',
dataType: 'text',
url: url,
data: {
what: 'db2list',
t: Math.random()
},
success: function(data, textStatus){
locallist = data;
console.log(locallist);
}
});
Заметили, что у вас dataType в виде текста? Он будет вводить данные и обрабатывать их как текст. Попробуйте изменить dataType на json. Это преобразует данные, которые были внесены в обычный объект, точно так же, как у вас уже есть.
Ваш AJAX-запрос имеет тип dataType: 'text',
Поменяйте его на JSON :)
Используйте 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);
}
});
Похожие вопросы
Новые вопросы
javascript
По вопросам программирования на ECMAScript (JavaScript / JS) и его различных диалектах / реализациях (кроме ActionScript). Включите все соответствующие теги в свой вопрос; например, [node.js], [jquery], [json] и т. д.