Redesenhar o gráfico do Google com base na entrada do usuário via solicitação AJAX

Eu tenho um gráfico do google puxando dados do meu banco de dados que funciona como eu quero. Com base em uma solicitação get no URL, ele extrai os dados da tabela selecionada.

Quero fazer essa atualização do gráfico via ajax com base em uma tabela selecionada em um menu suspenso. A parte em que não consigo avançar é fazer com que os dados sejam responsivos via ajax. Acho que o código abaixo está próximo, mas estou recebendo o erro abaixo do qual não consigo me livrar.

getdata.php: 22 Referência não detectadaErro: $ não está definidodrawVisualization @ getdata.php: 22onchange @ getdata.php: 47

Tentei remover a solicitação GET do getdata.php e codificar permanentemente uma tabela pensando que o $ não estava definido, mas que não resolveu o erro.

Código do gráfico de trabalho

<!DOCTYPE>
<html>
<head> 
<meta http-equiv="content-type" content="text/html; charset=utf-8"/>
<title>
Wind Graph
</title>
<script type="text/javascript" src="http://www.google.com/jsapi"></script>
<script type="text/javascript">
google.load('visualization', '1', {packages: ['corechart']});
</script>
<script type="text/javascript">

function drawVisualization() {

var data = new google.visualization.DataTable();

<?php
require("dbconnect.php");

echo " data.addColumn('string', 'Time');";
echo " data.addColumn('number', 'Wind_Speed');";
echo " data.addColumn('number', 'Wind_Gust');";

$db = mysql_connect($server, $user_name, $password);
mysql_select_db($database);

$sqlQuery = "SELECT * FROM ".$_GET['q']." WHERE Date(Time + INTERVAL 10 HOUR) = Date(UTC_TIMESTAMP() + INTERVAL 10 HOUR)";
$sqlResult = mysql_query($sqlQuery);
while ($row = mysql_fetch_assoc($sqlResult)) {

echo " data.addRow(['{$row['Time']}', {v: {$row['Wind_Speed']}, f: '{$row['Wind_Speed']}' }, {v: {$row['Wind_Gust']}, f: '{$row['Wind_Gust']}' } ]); ";

}

?>

// Create and draw the visualization.
new google.visualization.LineChart(document.getElementById('visualization')).
draw(data, {curveType: "none",
title: "AU0001 Wind Chart",
titleTextStyle: {color: "orange"},
//width: 800, height: 400,
//vAxis: {maxValue: 10},
vAxis: {minValue: 0},
vAxis: {title: 'Wind Speed (Knots)'},
vAxis: {baseline: 0},
vAxis: {gridlines: {count: 10}  },
vAxis: {title: "Wind Speed (Knots)", titleTextStyle: {color: "orange"}},
hAxis: {title: "Time", titleTextStyle: {color: "orange"}},
interpolateNulls: 1
}
);
}

google.setOnLoadCallback(drawVisualization);
</script>
</head>
<body>
<div id="visualization" style="width: 100%; height: 400px;"></div>
</body>
</html>

Novo código com solicitação AJAX

<!DOCTYPE>
<html>
<head> 
<meta http-equiv="content-type" content="text/html; charset=utf-8"/>
<title>
Wind Graph
</title&,gt;
<script type="text/javascript" src="http://www.google.com/jsapi"></script>
<script type="text/javascript">
google.load('visualization', '1', {packages: ['corechart']});
</script>
<script type="text/javascript">

function drawVisualization(num) {

var data = new google.visualization.DataTable(TableData);
var TableData = $.ajax({
  url: "getdata.php",
  data: "q="+num,
  dataType:"json",
  async: false
}).responseText;

// Create and draw the visualization.
new google.visualization.LineChart(document.getElementById('visualization')).
draw(data, {curveType: "none",
title: "Wind Chart",
titleTextStyle: {color: "orange"},
//width: 800, height: 400,
//vAxis: {maxValue: 10},
vAxis: {minValue: 0},
vAxis: {title: 'Wind Speed (Knots)'},
vAxis: {baseline: 0},
vAxis: {gridlines: {count: 10}  },
vAxis: {title: "Wind Speed (Knots)", titleTextStyle: {color: "orange"}},
hAxis: {title: "Time", titleTextStyle: {color: "orange"}},
interpolateNulls: 1
}
);
}

//  google.setOnLoadCallback(drawVisualization);
</script>
</head>
<body style="font-family: Arial;border: 0 none;">
<form>
<select name="users" onchange="drawVisualization(this.value)">
<option value="">Select unit:</option>
<option value="0001">0001</option>
<option value="0002">0002</option>

</select>
</form>
<div id="visualization" style="width: 100%; height: 400px;"></div>
</body>
</html>

código getdata.php

<?php
require("dbconnect.php");

echo " data.addColumn('string', 'Time');";
echo " data.addColumn('number', 'Wind_Speed');";
echo " data.addColumn('number', 'Wind_Gust');";

$db = mysql_connect($server, $user_name, $password);
mysql_select_db($database);


$sqlQuery = "SELECT * FROM ".$_GET['q']." WHERE Date(Time + INTERVAL 10 HOUR) = Date(UTC_TIMESTAMP() + INTERVAL 10 HOUR)";
$sqlResult = mysql_query($sqlQuery);
while ($row = mysql_fetch_assoc($sqlResult)) {

echo " data.addRow(['{$row['Time']}', {v: {$row['Wind_Speed']}, f: '{$row['Wind_Speed']}' }, {v: {$row['Wind_Gust']}, f: '{$row['Wind_Gust']}' } ]); ";

}

?>

questionAnswers(1)

yourAnswerToTheQuestion