2016-08-26 2 views
0

Я использую ajax для получения переменной из моего контроллера, и все отлично, пока я не нажму возвращаемые данные в другую переменную.Переменная Javascript имеет случайные значения уставок

Вот мой фрагмент кода

$(".event_selector").change(function() { 

    $.ajax({ 
     url: "/get_customer_values", 
     type: "GET", 
     async:false, 
     data: {event_selected: $(".event_selector").val()}, 
     success: function(data){ 
     var customer_values = {}; 
     for (var i in data) { 
      //This alert has the correct values 
      alert(i + " " + data[i]); 
      customer_values[i] = data[i]; 
     } 
     } 
    }); 

    for(var i in customer_values) { 
     //This is the alert that shows all the crazy values 
     alert("customer_values " + i + " " + customer_values[i]); 
    } 

    add_customer_values_to_panel(customer_values) 

    }); 

первое предупреждение, используя я и данные [я] совершенен, со всеми нужными значениями. Второе предупреждение с помощью customer_values ​​хэш имеет значения, которые выглядят как настройки, такие как:

KEY VALUE

функции нажмите мыши() {[машинный код]}

свойства [объект HTMLPropertiesCollection]

oncanplaythrough нуль

OnChange нулевой

OnClick нуль

oncontextmenu нуль

ondblclick нуль

ondrag нулевые

ondragend нулевые

функция

getAttributeNames getAttributeNames() {[машинный код]}

GetAttribute функция GetAttribute () {[собственный код]}

getAttributeNS function getAttributeNS() {[native code]}

У этого есть как минимум 100 других значений, которые выглядят так.

Я попытался переместить инициализацию var customer_values ​​на outsite ajax, но это не работает (ничего не происходит, и первое предупреждение даже не запускается).

Что происходит? Откуда берутся эти данные? Спасибо.

+2

Где вы объявляете 'customer_values', и как вы инициализировать его? –

+1

У вас есть элемент html с 'id =" customer_values ​​"'? Учитывая, что только показанный «customer_values» объявлен внутри обратного вызова успеха Ajax, второй цикл 'for' * не может * получить к нему доступ, но при условии, что вместо того, чтобы бросать опорную ошибку, он, как представляется, регистрирует свойства, которые имеют элементы html ... хорошо ... – nnnnnn

ответ

3

ваш «customer_values» объект не является глобальным, он определен внутри АЯКС функция успеха ...

+0

Это решило это! Спасибо! – Markoh

Смежные вопросы