2015-05-08 2 views
2

Хорошо, ребята, мне нужна помощь в создании гистограммы Google из массива php. это мой массивphp array to google bar chart

array (size=2) 
    0 => 
    object(stdClass)[42] 
     public 'nombre' => string 'Anillo Princess' (length=15) 
     public 'total' => string '5' (length=1) 
    1 => 
    object(stdClass)[43] 
     public 'nombre' => string 'Shake Sabor Vainilla' (length=20) 
     public 'total' => string '1' (length=1) 

и это код для создания диаграммы

<script type="text/javascript"> 
     google.load("visualization", "1.1", {packages:["bar"]}); 
     google.setOnLoadCallback(drawStuff); 

     function drawStuff() { 
     var data = new google.visualization.arrayToDataTable([ 
      ['Producto', 'Cantidad'], 
      ["Anillo princess", 4], 
      ["Shake Sabor Vainilla", 1], 
      ["Colageno hidrolisado", 12], 
      ["Proteina lifeone", 10], 
      ['otros', 3] 
     ]); 

     var options = { 
      title: 'Productos mas vendidos', 
      width: 900, 
      legend: { position: 'none' }, 
      chart: { subtitle: 'Cantidad vendidas' }, 
      axes: { 
      x: { 
       0: { side: 'top', label: 'Productos'} // Top x-axis. 
      } 
      }, 
      bar: { groupWidth: "90%" } 
     }; 

     var chart = new google.charts.Bar(document.getElementById('top_x_div')); 
     // Convert the Classic options to Material options. 
     chart.draw(data, google.charts.Bar.convertOptions(options)); 
     }; 
    </script> 

Как передать переменную в скрипт для создания диаграммы со значениями в массиве.

Thans for help guys!

ура.

ответ

1

Heres попытка:

<? 
    //original array 
    $arr = [ 
     ['nombre' => 'Anillo Princess', 'total' => '5'], 
     ['nombre' => 'Shake Sabor Vainilla', 'total' => '1'] 
    ]; 

    //loop and build output array 
    $output = [["Producto", "Cantidad"]]; 
    foreach($arr as $row) { 
     $output[] = [$row['nombre'], $row['total']]; 
    } 

    //echo the result 
    echo json_encode($output); 
?> 

это, если вы просто хотите, чтобы повторить straigth массив в коде следующим образом:

var data = new google.visualization.arrayToDataTable(<?=json_encode($output)?>); 

, но вы можете загрузить данные с запросом АЯКС

+0

Спасибо zedd, как бы я сделал это с помощью запроса ajax? – mtzStrada

+0

У вас есть jQuery или это ванильный javascript? – BobbyTables

+0

Да, у меня есть jquery включен – mtzStrada