2016-07-14 1 views
1

У меня есть простой сайт здесь. Он содержит элемент div с объектом css внутри. Я пытаюсь использовать ajax и json для запуска сценария php, который выхватит значение из текстового файла и обновит элемент div указанным значением.Неопределенная ошибка массива (javascript) с использованием php/ajax/json и т. Д.

Проблема передается dataList[0] функции replaceContentInContainer() возникает как неопределенная ошибка в консоли.

Вот сценарий, который выдает ошибку. Он бросает его, как только ссылается dataList[0].

<script> 
    setInterval(function() 
    { 
     $.getJSON('loadData.php', function(data){ 
      var dataList = [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] 
      dataList = data.value; 
      var tempID = "tempDIV"; 
      console.log('Good to go, data was loaded'); 
      console.log(data); 
      ReplaceContentInContainer(tempID,dataList[0]); 
     } 
    }, 2000); 
    </script> 

    <script type="text/javascript"><!-- 
     function ReplaceContentInContainer(id,content) { 
     var container = document.getElementById(id); 
     container.innerHTML = content; 
    } 
    //--></script> 

РНР файл

<?php 
    $lines = file("data.txt"); 
    echo json_encode($lines); 
?> 

Формат файла данных 'data.txt'

78\n 
82\n 
33\n 
etc... 

Консоль вывода следующим

Good to go, data was loaded indexUpdate.php:30:5 
Array [ "75 ", "34 ", "0 ", "0 ", "80 ", "31 ", "60 ", "72 ", "60 ", "70 ", 8 more… ] indexUpdate.php:31:5 
TypeError: dataList is undefined 
indexUpdate.php:32:5 
Good to go, data was loaded indexUpdate.php:30:5 
Array [ "75 ", "34 ", "0 ", "0 ", "80 ", "31 ", "60 ", "72 ", "60 ", "70 ", 8 more… ] indexUpdate.php:31:5 
TypeError: dataList is undefined 

Оно не имеет смысла, почему он думает, мой массив не определен или, по крайней мере, почему Я не могу определить элемент по индексу.

+2

'dataList = data.value;' => 'dataList = data;' Вы не возвращаете объект, поэтому нет свойства 'value' –

+0

Вы добрый сэр! ВЫ! Спасибо. артефакт из копии и вставки дней назад, я верю. Теперь программа работает гладко! –

+0

Рад помочь. Я добавил его в качестве ответа для вас. –

ответ

0

dataList = data.value; должно быть dataList = data;, поскольку вы не возвращаете объект, поэтому нет value.

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