Я работаю над личным проектом в течение нескольких дней, все работает красиво, но так как я начал его снова 2 часа назад, у меня возникает следующая проблема:Array от PHP до Javascript null
<html>
<head>
<title>Page Title</title>
</head>
<body>
<?php
$Testarray = array_map('str_getcsv', $content=file('Shows.csv'), array_fill(0,count($content), ";"));
foreach($Testarray as $array)
{
foreach($array as $item)
{
print($item);
print '<br/>';
}
}
?>
<script type="text/javascript">
var array = <?php echo json_encode($Testarray); ?>;
</script>
</body>
</html>
Я очень боюсь спросить, но массив «var» в Javascript равен нулю. $ Testarray заполнен правильно, он печатает правильные значения. Я попытался сделать то же самое с простой строкой, и это работает без проблем.
Я также пробовал var array = new Array(); перед его заполнением. Нет эффекта.
Редактировать после ответа trincot в:
var array = JSON.parse('<?php echo json_encode($Testarray); ?>');
дает следующий результат в "Источники" в Chrome:
var array = JSON.parse(' ');
Так что до сих пор, кажется, не вернуть ничего.
Edit2: var_dump ($ testarray) (Источники в Chrome):
Заключительный изменить: Причиной проблемы является значение в XLSX файл я экспортируемые из в файл CSV. У xlsx было значение с символом ô
, которое было заменено на �
в CSV-файле. Это вызвало появление вложенного массива нулей в PHP и заставило все ускориться.
Используя Eric's ответьте на другой вопрос, сохранив файл xlsx как xls, а затем сохраните xls, поскольку CSV сделал трюк.
Вы должны поставить кавычки '' сделать это строка для Javascript, а затем разобрать его, как JSON – trincot
Это возможный дубликат: - [Как я могу заполнить массив javascript со значениями из базы данных с помощью PHP?] (http://stackoverflow.com/questions/1416908/how-can-i-populate-a-javascript-array -с-значения-с-а-database- using-php) –
json_encode() выгружает только json. Было бы ** НЕ ** выплюнуть звонок «json.parse()». это было бы полностью избыточным. 'var foo = JSON.parse (4);' и 'var foo = 4' по существу идентичны. –