2012-04-02 1 views
1

У меня есть крайние трудности с поиском путей кодирования json на флоте. Во-первых, я отправляю массив данных, например, 00:00-00:30 с моего php на мой javascript. Однако, когда я использую функцию оповещения для отладки, я буду видетьJson encode не может работать с использованием флота

({'':"00:00-00:30", 1:"00:30-01:00", 2:"01:00-01:30", 3:"01:30-02:00", 4:"02:00-02:30", 5:"02:30-03:00", 6:"03:00-03:30", 7:"03:30-04:00", 8:"04:00-04:30", 9:"04:30-05:00"...})

Я совсем потерял в тот момент, почему я не могу просто отправить 00:00-00:30 и остальные в JSon закодировать без кавычек. Большое спасибо!

Мой PHP код массива:

$sql="SELECT * FROM $tbl_name6 WHERE Month = '$test'"; 
$result=mysqli_query($link, $sql); 
$row_cnt = mysqli_num_rows($result); 
while ($row = mysqli_fetch_array($result)) 
{ 
$times = $row['Time']; 
$demand = $row['Demand']; 

$arraytime[$countdown] = $times; 
$arraydata[$countdown] = $demand; 
$countdown = $countdown + 1; 

} 

Мой Javascript код:

$(function() { 
var graph = []; 
var power = <?php echo json_encode($arraydata);?>; 
var time = <?php echo json_encode($arraytime);?>; 
alert(time.toSource()); 
+0

Используйте строку вместо массива, вероятно. – hakre

+0

Вы хотите изменить my $ arraydata [] в строку? – Eugene

+0

Мне нужно передать свой массив в свой javascript, потому что я хочу обработать эти данные в javascript перед построением – Eugene

ответ

1

Вы тянете значения, как "00: 00-00: 30" из базы данных. Какой формат хранится в базе данных? Я предполагаю, что varchar является строкой. Вы вытаскиваете их из базы данных, вы получаете строку php, и когда вы json_encode в php-строке, вы получаете обратно строку javascript (следовательно, заключенный в кавычки). Не удивительно.

Давайте начнем с конца игры. Какие ценности вы хотите передать на флот? Существуют ли категории «00: 00-00: 30», «00: 30-01: 00» и т. Д., Например, для пирога или гистограммы? Это ярлыки, которые вы хотите на xAxis?

Что такое «власть»? Являются ли эти числовые значения?

1

Не совсем понятно, что вы хотите в качестве конечного результата, но я предполагаю, что вам нужен массив дат, которые вы можете передать на флот. Если это так, попробуйте инициализацию $ обратного отсчета до 0. Это изменит это:

{"":"00:30-01:00","1":"01:00-01:30","2":"01:30-02:00"} 

к этому: Оттуда вы можете получить реальный объект даты, используя Дату функция

["00:30-01:00","01:00-01:30","01:30-02:00"] 

() с строкой в ​​качестве аргумента.