728x90
let test = '<?=school?>';
console.log(test); //초,중,고
let test2 = ["<?=implode(",", $test)?>"]; //php test 배열을 implode() 를 통해서 ,로 잘라서
// 자바스크립트 변수에 넣어줍니다. 그러면 자바스크립트 [0] 번째 index에 전부 들어가게 됩니다.
console.log(test2); //초,중,고
var test3 = test2[0].split(","); 해서 test3라는 배열을 만들어 ,를 기준으로 잘라서 넣어 줍니다.
PHP로 개발을 하다보니 자바스크립트 안에서 PHP 변수를 사용하는 경우가 생겼다.
이럴 경우에 '<? = php변수 ?>' 로 사용이 가능했다. 그렇지만 적용이 불가능한 점도 확인 하였다. 예로들면 반복문으로 자바스크립트 배열에 PHP 배열을 넣는 것인데, [index] 가 자바스크립트 에서만 돌기 때문에 PHP는 정해진 배열의 인덱스만 뽑아올 수 있다. 그래서 PHP 배열을 자바스크립트 배열에 넣어주어야 한다.
필자는 좀 비효율적인 생각이 들어 개선방법을 생각중임.
$school = 초,중,고;
$test = explode(',',$school); //,를 기준으로 잘라서 test라는 변수에 배열로 넣을 수 있다.
$test[0]/초
$test[1]//중
$test[2]//고
자바스크립트에서 DOM을 이용해 src 부분이나 font 부분을 건드리는 경우 src = " " 이렇게 " " 안에 php 변수를 작성해야 되는 경우가 있다. 그런 경우에는 위에처럼 '<??>' 이렇게 작성하면 되지만 배열의 경우는 말이 달라진다. 한개에 index를 넣어야 되는 경우라면 괜찬지만 반복문을 돌려서 출력해야한다면 말이다. 그럴 경우는 자바스크립트 index도 문자열로 취급이 되기 때문에 자바스크립트의 템플릿 리터널을 이용해야 한다.
( ` ) 백틱 이라는 기호를 사용한다.
for(var i = 0; i < 3; i++){
ctx.font = `${test3[i]}px`; //이렇게 되면 i가 정상적으로 돌면서 배열이 돈다.
}
728x90
'Front-End > JavaScript' 카테고리의 다른 글
자바스크립트 fetch api 익스플로러 에러 (0) | 2021.02.26 |
---|---|
fetch 로 api 요청하기 (0) | 2021.02.19 |
ajax 성공적으로 받은 결과 if 문 사용하는법 (2) | 2021.02.19 |