Я пытался решить эту проблему по-разному, но не сделал ее работу должной, я чувствую, что это не так много (я действительно надеюсь), но мой опыт и навыки с Ajax и jQuery являются ограниченными, поэтому я обращаюсь к вашему опыту!Замена диаграммы JQplot с использованием ajax
Я работаю над диаграммой, аналогичной приведенной здесь http://www.jqplot.com/tests/data-renderers.php. но в моем случае json-файл генерируется в зависимости от значения, которое пользователь выбирает из поля выбора. Для этого я использую 2 файла и ajax-звонки:
-AnnualB.html - это файл, в котором находится поле выбора, и диаграмма должна отображаться.
-Index.php - файл, в котором производится запрос к базе данных (с использованием значения, полученного из selectbox в AnnualB.html), и генерируется массив json.
В AnnualB.html Я использую метод GET для извлечения значения из selectbox и отправки его в Index.php, который генерирует данные json. Основываясь на данных json, график должен быть создан в AnnualB ... Вот где моя проблема. Функция генерации диаграммы работает нормально, и вызов для отправки значения выбора и возврата json также работает (проверил с Firebug), но я знаю, что что-то не хватает (но пока не знаю), потому что я не знаю, t управлять передачей json-данных функции, которая генерирует диаграмму.
Мои коды AnnualB.html идет как это (сокращенные некоторую ненужную информацию с ...):
Функция для создания диаграммы (работает нормально, если передается данные JSON)
function CreateGraph() {
$(document).ready(function(){
var ajaxDataRenderer = function(url, plot) {
var ret = null;
$.ajax({
async: false,
url: url,
dataType:'json',
success: function(data) {
ret = data; }
});
return ret; };
$.jqplot.config.enablePlugins = true;
var jsonurl = "./index.php";
var plotData = ajaxDataRenderer(jsonurl);
var series = ...
plot1 = $.jqplot('Chart1', series,{...}}
Ajax вызовы (ВОЗМОЖНО ГДЕ МОИ ОШИБКИ/упущение)
function LoadGraph(int)
{
if (window.XMLHttpRequest)
{xmlhttp=new XMLHttpRequest();}
else
{xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");}
xmlhttp.open("GET","index.php?tasel="+int,true);
xmlhttp.send();
xmlhttp.onreadystatechange=function()
{
CreateGraph(int)
}
}
Выбрать окно
<select name="tasel" size="1" onchange="LoadGraph(this.value)">
<option value="">Select accounts type:</option>
<option value="3">Tuloslaskelma</option>
<option value="2">Tasevastattava</option>
<option value="1">Tasevastaava</option>
</select>
Соответствующий код в index.php выглядит следующим образом (работает нормально, когда значение поля выбора (tasel) передаются)):
$tasel = $_REQUEST['tasel'];
if ($tasel == ...2)
{...}
.
.
.
echo "[",$selite, ",";// These 2 variables create the json array
echo $finaljson, "]";
Заранее благодарим за ваше терпение и помощь!
Спасибо за ваш ответ .. но я просто понял, что ответ был проще, чем я ожидал. Мне не нужно было делать второй звонок. Мне просто нужно было добавить параметр '? Tasel =" + int' в url, используемый для построения графика. – Clarissa