I have followed various examples...
Change Google Chart bar colors when data table input is from JSON data from server
...and I'm positive I have my data in the correct format. It is being loaded with AJAX, the code is below.
AJAX PHP
$rets = ret_priced_product();
$i=1;
$cols = array();
$rows = array();
$col{$i}=array();
$col{$i}["label"]="Retailer";
$col{$i}["type"]="string";
$cols[] = $col{$i++};
$col{$i}=array();
$col{$i}["label"]="Cheapest";
$col{$i}["type"]="number";
$cols[] = $col{$i++};
$col{$i}=array();
$col{$i}["type"] = "string";
$col{$i}["p"] = array("role" => "style");
$cols[] = $col{$i++};
$k = 0;
foreach($rets as $ret) {
    $rowno = "row" . $k;
    ${$rowno}["c"] = array();
    $cell0["v"]= $ret->ret; //the first cell is always the title
    ${$rowno}["c"][] = $cell0;
    $cell1["v"]= $ret->cnt;
    ${$rowno}["c"][] = $cell1;
    $cell2["v"]= "color: " . $ret->colour;
    ${$rowno}["c"][] = $cell2;
    $rows[] = ${$rowno};
}
$data = array("cols"=>$cols,"rows"=>$rows);
echo json_encode($data);
The JSON that is created is below...
{  
   "cols":[  
      {  
         "id":"",
         "label":"Retailer",
         "pattern":"",
         "type":"string"
      },
      {  
         "id":"",
         "label":"Cheapest",
         "pattern":"",
         "type":"number"
      },
      {  
         "type":"string",
         "p":{  
            "role":"style"
         }
      }
   ],
   "rows":[  
      {  
         "c":[  
            {  
               "v":"Ret1"
            },
            {  
               "v":"6"
            },
            {  
               "v":"color: #FF9900"
            }
         ]
      },
      {  
         "c":[  
            {  
               "v":"Ret2"
            },
            {  
               "v":"34"
            },
            {  
               "v":"color: #F03A40"
            }
         ]
      },
      {  
         "c":[  
            {  
               "v":"Ret3"
            },
            {  
               "v":"60"
            },
            {  
               "v":"color: #0043F0"
            }
         ]
      }
   ]
}
Javascript
function drawChart2() {
    $.ajax({
        url: '../ajax/gc_position_ret_min.php',
        beforeSend: function(){
            $("#chart2").html('<img src="/img/loading.gif">');
        },
        type: 'post',
        data: {
            cat: cat,
        },
        dataType: 'json'
    }).done(function(data){
        console.log(data);
        jsonData = data;
        var data = new google.visualization.DataTable(jsonData);
        var options = {
            title: "Retailer with the lowest priced product",
        };
        var chart = new google.charts.Bar(document.getElementById('chart2'));
        chart.draw(data, options);
    }).fail(function(){
        //
    });//AJAX
}
So, no matter what happens, the data comes up correctly, but the style is ignored. If I hardcode a style in the PHP, it has no effect.
So my question is... how do I get different bar colours when I get the data from a source through AJAX, which part is not working?
 
    