2016-02-27 5 views
0

Я Хава PHP файл, который читает в CSV-файлвозникают проблемы отображения яваскрипта массива

`<?php 
$csv = array_map('str_getcsv', file('../data/file.csv')); 
array_walk($csv, function(&$a) use ($csv) { 
    $a = array_combine($csv[0], $a); 
}); 
array_shift($csv); # remove column header 
header('Content-Type: application/json'); 
echo json_encode($csv); 
?>` 

У меня есть JS файл, который отображает имя, фамилию и кнопки в таблице. это работает. Затем, когда я нажимаю кнопку, он должен передавать значения на другую страницу. Он работает только с именем и фамилией. Когда я пытаюсь передать другие значения из файла данных, таблица не отображается. Мне нужно передать все значения в файле данных в новый файл php. Что я делаю неправильно? Есть ли более простой способ сделать это? Спасибо, я очень ценю вашу помощь.

var xhr = new XMLHttpRequest(); 

xhr.onreadystatechange = function() { 
    if (xhr.readyState === 4) { 
    var file = JSON.parse(xhr.responseText); 
    var statusHTML = '<tr>'; 

    for (var i = 0; i < file.length; i += 1) { 
     statusHTML += '<td>'; 
     statusHTML += file[i].FirstName; 
     statusHTML += '</td>'; 
     statusHTML += '<td>'; 
     statusHTML += file[i].LastName; 
     statusHTML += '</td>'; 
     statusHTML += '<td>'; 
     statusHTML +='<form name="classesDisplay"role="form" action="planer.php" method="post">'; 
     statusHTML +='<input type="hidden" name="firstname" value="'+file[i].FirstName+'">'; 
     statusHTML +='<input type="hidden" name="lastname" value="'+file[i].LastName+'">'; 
     //statusHTML +='<input type="hidden" name="calc1" value="'+file[i].MAT251-Calc-I +'">'; 

     statusHTML +='<button type="submit" class="btn btn-sm btn-success myButton">'; 
     statusHTML += '<span class="glyphicon glyphicon-eye-open"></span>'; 
     statusHTML +=' progress</button>'; 

     statusHTML +='</form>';  
     statusHTML += '</td>'; 
     statusHTML += '</tr>'; 



    } 
    document.getElementById('studentList').innerHTML = statusHTML; 
    } 
}; 
xhr.open('GET', 'data/file.php'); 
xhr.send(); 

выборочными данные

[ 
    { 
    "LastName": "Rocha", 
    "FirstName": "Cara I.", 
    "MAT251-Calc-I": "A", 
    "MAT252-Calc-II": 0, 
    "MAT320-DiscreteMath": 0, 
    "CPS210-CompSci-I": "C-", 
    "CPS310-CompSci-II": 0, 
    "CPS315-CompSci-III": 0, 
    "CPS352-OOP": 0, 
    "CPS330-Assembly.Arch.": 0, 
    "CPS353-SoftEng": 0, 
    "CPS415-Disc.Cont.Algorithms": 0, 
    "CPS340-Op.Sys": 0, 
    "CPS425-Lang.Processing": 0, 
    "CPS493-Elect-1": 0, 
    "CPS493-Projects": 0, 
    "EGC230-Dig.Logic": 0, 
    "EGC208-Dig.Logic.Lab": 0, 
    "SCIENCE-I": 0, 
    "SCIENCE-II": 0 
    }, 
    { 
    "LastName": "Hamilton", 
    "FirstName": "Mufutau N.", 
    "MAT251-Calc-I": 0, 
    "MAT252-Calc-II": 0, 
    "MAT320-DiscreteMath": 0, 
    "CPS210-CompSci-I": "A-", 
    "CPS310-CompSci-II": 0, 
    "CPS315-CompSci-III": 0, 
    "CPS352-OOP": 0, 
    "CPS330-Assembly.Arch.": 0, 
    "CPS353-SoftEng": 0, 
    "CPS415-Disc.Cont.Algorithms": 0, 
    "CPS340-Op.Sys": 0, 
    "CPS425-Lang.Processing": 0, 
    "CPS493-Elect-1": 0, 
    "CPS493-Projects": 0, 
    "EGC230-Dig.Logic": 0, 
    "EGC208-Dig.Logic.Lab": 0, 
    "SCIENCE-I": 0, 
    "SCIENCE-II": 0 
    }, 

ответ

0

Вы только создать один стартовый <tr> для всех строк, но закрытие каждой строки правильно

Изменить

var statusHTML = '<tr>'; 
for (var i = 0; i < file.length; i += 1) { 

Для

var statusHTML = ''; 
for (var i = 0; i < file.length; i += 1) { 
    statusHTML += '<tr>'; // start new row each iteration of loop 

Для имен свойств со специальными символами, такими как file[i].MAT251-Calc-I вам нужно использовать [] обозначения:

file[i]['MAT251-Calc-I'] 
Смежные вопросы