Uncaught SyntaxError: Unexpected token for 에러 질문입니다.

Uncaught SyntaxError: Unexpected token for 에러 질문입니다.

QA

Uncaught SyntaxError: Unexpected token for 에러 질문입니다.

본문

안녕하세요 이제막 군대다녀온 사회 초년생 입니다.

 

그누보드의 datepicker 을 이용해 조회하고 싶은 날짜를 선택해 방문자의 숫자를 

그래프로 보여주는 스킨을 만들고 있는데요

 

간단하게 설명드리자면

 

ajax를 이용해 g5_visit_sum 테이블의 vs_date값과 vs_count 값을 문자열로 받아와

str 이라는 변수에 배열로 집어넣었습니다

ex)

str[0] = 2017-05-01

str[1] = 50

str[2] = 2017-05-02

str[3] = 60 

값이 정상적으로 들어가 있습니다.

 

실제로 str 의 값을 확인한 결과

잘 나오는 것 까지 확인하였습니다

문제는 차트로 표현하기 위해

dataProvider (차트에 x값과 y값의 데이터의 수치를 입력해주는 부분) 에서 오류가 발생한다고

나옵니다.

 

코드를 보면


<script>
function chart(data){
    var str = data.split('///');
    var size = str.length-3;
  
    //alert(str +'/'+ size);
    var chart = AmCharts.makeChart("chartdiv", {
        "type": "serial",
        "theme": "dark",
        "dataDateFormat": "YYYY-MM-DD",
        "dataProvider":[
           for(var j=0;j<=size;j=j+2)
           {
             {
              "date":str[j],
              "value":str[j+1]
             },
           }
         ],
 
        "valueAxes": [{
            "maximum": 150,
            "minimum": 0,
            "axisAlpha": 0,
            "guides": [{
                "fillAlpha": 0.1,
                "fillColor": "#CC0000",
                "lineAlpha": 0,
                "toValue": 120,
                "value": 0
            }, {
                "fillAlpha": 0.1,
                "fillColor": "#0000cc",
                "lineAlpha": 0,
                "toValue": 200,
                "value": 120
            }]
        }],
        "graphs": [{
            "bullet": "round",
            "dashLength": 4,
            "valueField": "value"
        }],
        "chartCursor": {
            "cursorAlpha": 0,
            "zoomable":false,
            "valueZoomable":true
        },
        "categoryField": "date",
        "categoryAxis": {
            "parseDates": true
        },
        "valueScrollbar":{
 
        }
    });
}

 

이부분이 데이터를 입력하는 부분입니다.

 

크롬 개발자도구를 본 결과 Uncaught SyntaxError: Unexpected token for 이라는 

에러가 발생하구요

for문 을 가리키고 있습니다.

 

(size)는 for문을 깔끔하게 보여주기 위해 변수로 지정해 놓은것이구요 변수에대한 문제는 없는것

같습니다.

 

코딩 고수분들 도움을 부탁드립니다.

 

 

 

 

이 질문에 댓글 쓰기 :

답변 2

배열에 for문을 넣으니 에러가 뜨는거죠. function으로 래핑해서 return시키는것도 아니구요.

(익명함수형태로 넣는것도 제가 보기엔 안될것같습니다)

 

비동기 문제라면 큐 이용해서 배열로 넣고 변경하시거나 PHP코드로 아예 자바스크립트와 섞어버리는걸 추천해요.

빠른 답변 감사합니다


"dataProvider":[
          <?php
          for($i=0 ;$i <= ~~~ ; $i=$i+2){ ?>
            {
            "date":str[<?php echo $i;?>],
            "value":str[<?php echo $i+1;?>]
            },
          <?php }?>
        ],          

이렇게 짜봤는데 ~~~ 저부분에 본문 4번째 줄에있는 size 란 변수를 넣고싶은데
방법이 있을까요 ??

배열이기때문에 이것도 불가능 한가요??

어떤식으로 코드가 짜여져있는지 모르겠는데, 자바스크립트 -> PHP는 불가능합니다.

PHP안에 코드 체크해보시고 변수명 불러올수있으면 변수에 맞춰서 ~~~ 안에 count(변수명) 넣어주심 될것같네요

제가 개인적으로 추천드리는건
1. for문을 통한 마지막 key일때 차트객체를 생성하는 콜백함수 호출
2. PHP로 쓸수있다면 변수명 찾아서 변수명 안에 넣는방식
3. 아니면 custom EventListener 추가(IE9이상이라 크로스브라우징 이슈있음)
4. javascript Promise쓰세요.(마찬가지로 크로스브라우징 이슈)

답변을 작성하시기 전에 로그인 해주세요.
전체 123,591 | RSS
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT