jquery .post () 함수에서 응답을받은 후 Google 차트를로드하는 방법은 무엇입니까?

Pathros

사용자가 데이터를 검색하기 위해 시작일과 종료일을 모두 선택하는 UI를 작업 중입니다. 이러한 데이터 중 일부는 표에 표시되며 표시된 데이터와 관련된 Google 차트를 표시하고 싶습니다.

사용자가 마지막으로 날짜를 선택하면 $.post()다음과 같은 함수를 사용하여이 두 변수를 보냅니다 .

<script type="text/javascript" src="https://www.google.com/jsapi?autoload={'modules':[{'name':'visualization','version':'1.1','packages':['corechart']}]}"></script>

$('#button-send').click(function() {
    var url_route = "{{URL::action('Controller@general_stats_post')}}";
    var start_date=$('#start_date_i').val();
    var end_date=$('#end_date_i').val();
    var datos = {start_date: start_date, end_date:end_date,_token:_token};

보내기 버튼을 클릭하면 제대로 작동하는 $ .post () 함수를 사용합니다.

$.post(url_route, datos, function(data,status){
  if(status=='success'){
    console.log('Dates sent successfully. Now the data retrieved are: '+data);
    var response = jQuery.parseJSON(data);
    if(response.events_types.length === 0){
        console.log('events_types is empty.');
    }
    else{
    console.log('The string for google charts got is: `'+response.events_types+'`');
    /*Here goes the google chart*/

    }
  }else if(status=='error'){
    console.log('Errors found');
  }
 });//end of .post() function
}); //end of onclick button-send

events_types 문자열은 예를 들어 다음과 같습니다.

[['Event','Total'],['Workshop',1],['Seminar',1]]

Google의 jsfiddles 에서 완벽하게 작동합니다 .

그래서 내가 시도한 것은 다음과 같이 events_types 문자열이 존재하는 {} 안에 Google 차트의 drawChart () 함수를 넣는 것입니다.

        $.post(url_route, datos, function(data,status){
          if(status=='success'){
            console.log('Dates sent successfully. Now the data retrieved are: '+data);
            var response = jQuery.parseJSON(data);
            if(response.events_types.length === 0){
                console.log('events_types is empty.');
            }
            else{
            console.log('The string for google charts got is: `'+response.events_types+'`');
            /*GOOGLE CHART*/
    google.setOnLoadCallback(drawChart);
    function drawChart() {
   console.log('Inside the drawChart() function');
    var data = google.visualization.arrayToDataTable(response.events_types);
    var options = {
       title: 'My test'
                };

    var chart = new google.visualization.PieChart(document.getElementById('eventos_charts'));
    chart.draw(data, options);
     }  
            /*END OF GOOGLE CHART PART*/
            }
          }else if(status=='error'){
            console.log('Errors found');
          }
         });//end of .post() function
        }); //end of onclick button-send

drawChart ()가 실행되었음을 알려주는 console.log 메시지를 넣었습니다. 그러나 나는 그 메시지를 결코 얻지 못합니다. 따라서 이것은 drawChart () 함수가 실행되지 않음을 의미합니다.

거의 작동-편집

이것은 작동하는 코드입니다 ...하지만 데이터 문자열을 수동으로 정의하는 경우에만 다음과 같이 말합니다.

else{
 console.log('The data string is: `'+response.tipos_eventos+'`');
 var the_string=response.tipos_eventos;
/***** start Google charts:*******/
 //google.setOnLoadCallback(drawChart);
  function drawChart() {
    console.log('Inside the drawChart() function');
    var data = google.visualization.arrayToDataTable([['Evento','Cantidad'],['Taller',1],['Seminario',1]]);//DEFINED MANUALLY

 var options = {
   title: 'The chart'
   };
  var chart = new google.visualization.PieChart(document.getElementById('events_types'));

  chart.draw(data, options);
 }
 drawChart();//Thanks to @FABRICATOR                                

/****  END Google charts: Events types *********/                               
}

그러나 데이터를 동적으로 가져 오려고하면 :

else{
 console.log('The data string is: `'+response.tipos_eventos+'`');
 var the_string=response.tipos_eventos;
/***** start Google charts:*******/
 //google.setOnLoadCallback(drawChart);
  function drawChart() {
    console.log('Inside the drawChart() function');
    var data = google.visualization.arrayToDataTable(the_string);//DEFINED DYNAMICALLY

 var options = {
   title: 'The chart'
   };
  var chart = new google.visualization.PieChart(document.getElementById('events_types'));

  chart.draw(data, options);
 }
 drawChart();//Thanks to @FABRICATOR                                

/****  END Google charts: Events types *********/                               
}

다음과 같은 오류가 발생합니다.

Uncaught Error: Not an array

작동시킬 아이디어가 있습니까? 내가 무엇을 놓치고 있습니까?

Pathros

마지막으로 가장 쉬운 해결책을 찾았습니다. Laravel의 ORM (Illuminate / Database)을 사용하고 있다는 점을 감안할 때 얻은 데이터는 json 형식으로 제공됩니다.

이것은 Laravel 및 Slim 프레임 워크에서 작동합니다.

따라서 변수를 뷰에 직접 전달합니다 (Slim에서).

$app->render('home.php',[
        'myArray'=>$myArray
]);

그런 다음 뷰 (이 경우 Twig 뷰. 블레이드에서 비슷해야 함) 내에서 배열을 가져 와서 Javascript 코드 내의 변수에 넣습니다.

var myArray = {{ myArray|json_encode|raw }};

그런 다음 반복해서 각 요소를 가져 와서 Google 차트 데이터 배열에 추가합니다.

$.each(myArray,function(index, value){
            //console.log('My array has at position ' + index + ', this value: ' + value.r1);
            data.addRow([value.col1,value.col2,value.col3,value.col4]);
        });

그리고 그것은 지금 작동합니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

양식 POST를 보낸 후 Restful API에서받은 JSON 응답을 구문 분석하는 방법은 무엇입니까?

분류에서Dev

Spring MVC에서 jQuery .load (), .post () 응답을 얻는 방법은 무엇입니까?

분류에서Dev

send 함수가 호출 된 후 Laravel Mail 응답을받는 방법은 무엇입니까?

분류에서Dev

로드 후 Google 차트에 대시 격자 선을 추가하는 방법은 무엇입니까?

분류에서Dev

NodeJS의 함수에서 Post 요청의 응답을 반환하는 방법은 무엇입니까?

분류에서Dev

jquery에서 ajax 요청이 전송 된 후 함수를 호출하는 방법은 무엇입니까?

분류에서Dev

JQuery에서받은 JSON 응답의 데이터에 액세스하는 방법은 무엇입니까?

분류에서Dev

시간 간격 후에 JQuery 스크립트를 다시로드하는 방법은 무엇입니까?

분류에서Dev

swiftui에서 API 호출 응답을받은 후 이전 화면으로 돌아가는 방법은 무엇입니까?

분류에서Dev

텍스트 전용 콘솔 모드에서 POST 후 GRUB를 편집하는 방법은 무엇입니까?

분류에서Dev

호출 된 동일한 함수에서 scrapy.Request ()의 응답을받는 방법은 무엇입니까?

분류에서Dev

Python Facebook SDK : 요청에서 응답을받는 방법은 무엇입니까?

분류에서Dev

Node.js에서 POST 요청을 시뮬레이션 한 후 응답 본문에 액세스하는 방법은 무엇입니까?

분류에서Dev

POST 후 API에서 응답을받는 방법

분류에서Dev

Backbone collection.create : 기다린 후 서버 응답을 받고 항목을 추가하는 방법은 무엇입니까?

분류에서Dev

jquery에서 PHP로 함수를 호출하는 방법은 무엇입니까?

분류에서Dev

jquery $ .deferred () 완료 후 작업을 수행하는 방법은 무엇입니까?

분류에서Dev

DocuSign API-사용자 인증 후 콜백 응답을받는 방법은 무엇입니까?

분류에서Dev

nodejs에서 배열을 반복 한 후 한 번만 응답을 반환하는 방법은 무엇입니까?

분류에서Dev

Spring Controller에서 JQuery $ post를 잡는 방법은 무엇입니까?

분류에서Dev

Array를 JQuery Ajax Post에 전달하는 방법은 무엇입니까?

분류에서Dev

PHP에서 Fetch () POST를받는 방법은 무엇입니까?

분류에서Dev

Jquery에서 함수 정의로 이동하는 방법은 무엇입니까?

분류에서Dev

jquery에서 show 함수를 사용하는 방법은 무엇입니까?

분류에서Dev

jQuery에서 PHP 함수를 호출하는 방법은 무엇입니까?

분류에서Dev

jquery 함수에서 $ (this)를 사용하는 방법은 무엇입니까?

분류에서Dev

Volley로 multipart / fom-data를 보내고 JSON 객체에서 응답을받는 방법은 무엇입니까?

분류에서Dev

URL을 통해 Google Geocoding json 응답에서 특정 요소를 추출하는 방법은 무엇입니까?

분류에서Dev

자바 스크립트로 Google 시트에서 차트를 만드는 방법은 무엇입니까?

Related 관련 기사

  1. 1

    양식 POST를 보낸 후 Restful API에서받은 JSON 응답을 구문 분석하는 방법은 무엇입니까?

  2. 2

    Spring MVC에서 jQuery .load (), .post () 응답을 얻는 방법은 무엇입니까?

  3. 3

    send 함수가 호출 된 후 Laravel Mail 응답을받는 방법은 무엇입니까?

  4. 4

    로드 후 Google 차트에 대시 격자 선을 추가하는 방법은 무엇입니까?

  5. 5

    NodeJS의 함수에서 Post 요청의 응답을 반환하는 방법은 무엇입니까?

  6. 6

    jquery에서 ajax 요청이 전송 된 후 함수를 호출하는 방법은 무엇입니까?

  7. 7

    JQuery에서받은 JSON 응답의 데이터에 액세스하는 방법은 무엇입니까?

  8. 8

    시간 간격 후에 JQuery 스크립트를 다시로드하는 방법은 무엇입니까?

  9. 9

    swiftui에서 API 호출 응답을받은 후 이전 화면으로 돌아가는 방법은 무엇입니까?

  10. 10

    텍스트 전용 콘솔 모드에서 POST 후 GRUB를 편집하는 방법은 무엇입니까?

  11. 11

    호출 된 동일한 함수에서 scrapy.Request ()의 응답을받는 방법은 무엇입니까?

  12. 12

    Python Facebook SDK : 요청에서 응답을받는 방법은 무엇입니까?

  13. 13

    Node.js에서 POST 요청을 시뮬레이션 한 후 응답 본문에 액세스하는 방법은 무엇입니까?

  14. 14

    POST 후 API에서 응답을받는 방법

  15. 15

    Backbone collection.create : 기다린 후 서버 응답을 받고 항목을 추가하는 방법은 무엇입니까?

  16. 16

    jquery에서 PHP로 함수를 호출하는 방법은 무엇입니까?

  17. 17

    jquery $ .deferred () 완료 후 작업을 수행하는 방법은 무엇입니까?

  18. 18

    DocuSign API-사용자 인증 후 콜백 응답을받는 방법은 무엇입니까?

  19. 19

    nodejs에서 배열을 반복 한 후 한 번만 응답을 반환하는 방법은 무엇입니까?

  20. 20

    Spring Controller에서 JQuery $ post를 잡는 방법은 무엇입니까?

  21. 21

    Array를 JQuery Ajax Post에 전달하는 방법은 무엇입니까?

  22. 22

    PHP에서 Fetch () POST를받는 방법은 무엇입니까?

  23. 23

    Jquery에서 함수 정의로 이동하는 방법은 무엇입니까?

  24. 24

    jquery에서 show 함수를 사용하는 방법은 무엇입니까?

  25. 25

    jQuery에서 PHP 함수를 호출하는 방법은 무엇입니까?

  26. 26

    jquery 함수에서 $ (this)를 사용하는 방법은 무엇입니까?

  27. 27

    Volley로 multipart / fom-data를 보내고 JSON 객체에서 응답을받는 방법은 무엇입니까?

  28. 28

    URL을 통해 Google Geocoding json 응답에서 특정 요소를 추출하는 방법은 무엇입니까?

  29. 29

    자바 스크립트로 Google 시트에서 차트를 만드는 방법은 무엇입니까?

뜨겁다태그

보관