2013-09-10 3 views
0

Как я упоминал в названии, я хочу передать Javascript-переменную в JQuery. Я целый день трачу, чтобы узнать дорогу, но ничего не получил. Я попытался использовать ajax для передачи переменной в PHP, тогда я могу получить данные ответа. Но когда я хочу передать его в highcharts, это не сработало, может ли кто-нибудь показать мне, как это сделать? Я буду очень благодарен.Как передать переменную JavaScript в JQuery

//this is the ajax I used to send the request to PHP , I can get the data in data_ajax. 
function chooseCategory(mat_id){ 
      var ajax = ajaxObj("POST", "test.php"); 
     ajax.onreadystatechange = function() { 
     if(ajaxReturn(ajax) == true) { 
      data_ajax = ajax.responseText; 
      alert(data_ajax);} 
       } 

       ajax.send("id=" + material_id); 
     } 

    //this is part of the jquery code, the charts can not get any data from variable data_ajax. 
    $(function() {            
$('#container3').highcharts({ 
    ... 
    ... 
    series: [{ type: 'line', name: '#numbers:', data: data_ajax 
+11

JQuery IS Javascript! вместо предупреждения, вызовите highcharts, где у вас есть предупреждение. Вы теперь вызываете highcharts при загрузке страницы, а не после вызова Ajax. – mplungjan

ответ

0

Вам нужно прочитать на Ajax, а также на JQuery.

Попробуйте это первая

function chooseCategory(mat_id){ 
    $.post("test.php",{"id":mat_id},function(data) { 
    window.console && console.log(data); 
    }); 
} 

тогда, когда вы счастливы попробовать в Highcharts, который должен быть загружен конечно

function chooseCategory(mat_id){ 
    $.post("test.php",{"id":mat_id},function(data) { 
    $('#container3').highcharts({ 
    series: [{ "type":"line", "name": "#numbers", "data": data }] 
    }); 
    }); 
} 
+0

функция chooseCategory (mat_id) { \t \t \t $ .post ("test.php", { "ID": mat_id}, функция (data_ajax) { \t \t \t оповещения (data_ajax); \t \t $ ('# container3 '). highcharts ({// Я до сих пор не могу получить данные в контейнере3 – leonlong

+0

Удивительно, чтобы получить 11 upvotes в комментарии и нисходящее изображение сообщения, которое показывает, как реализовать комментарий. – mplungjan

+0

А, я нашел причину , когда мы получаем данные Json от PHP, это строковый тип, но для высоких диаграмм требуется int. После того, как я использую JSON.PARSE (данные) для преобразования данных, он работает хорошо. Большое спасибо. – leonlong

1

Поскольку вызов Ajax является асинхронной, вам нужно ждать его завершить до загрузки Highcharts. Для этого обычно используется обратный вызов. Поместите код загрузки диаграммы в функцию «loadCharts (data)» и вызовите это изнутри обработчика Ajax. Что-то вроде этого:

function chooseCategory(mat_id){ 
    // ... 

    ajax.onreadystatechange = function() { 
     if(ajaxReturn(ajax) == true) { 
      data_ajax = ajax.responseText; 
      alert(data_ajax); 
      loadCharts(data_ajax); 
     } 
    }; 
} 

function loadCharts(data_ajax) 
    $('#container3').highcharts({ ... }); 
} 
+0

Я сделал то, что вы мне сказали, но я все еще не могу получить переменную внутри контейнера, я не знаю, в чем причина. во всяком случае, Большое спасибо. – leonlong

1

Просто определить функцию, которая Кальес Highcharts.

var drawChart = function(data_ajax) { 
    $('#container3').highcharts({ 
     ... 
     ... 
     series: [{ type: 'line', name: '#numbers:', data: data_ajax 
    }); 
} 

И тогда вместо того, чтобы предупредить данные просто вызвать функцию:

drawChart(data_ajax) 
Смежные вопросы