스크립트에서 php function 사용 할때요..

스크립트에서 php function 사용 할때요..

QA

스크립트에서 php function 사용 할때요..

답변 4

본문


<script>
let kind = 'A';
let ggggg = "<?php echo find('A'); ?>"; // 문장을 완성형으로 작성했을경우...
console.log('=== >>1>>>===='+ggggg); // ok 로 잘 찍힙니다.
 
let tttttt = '<?php echo find("${kind }'); ?>`; // 스크립트 변수값을 보낼경우
console.log('=== >>2>>>===='+tttttt);  // kind 값이 넘어가지 않아 no 찍힙니다. 
let ccccc = '<?php echo find("' + kind + '"); ?>'; // 스크립트 변수값을 보낼경우
console.log('=== >>3>>>===='+ccccc);  // kind 값이 넘어가지 않아 no 찍힙니다.
 
</script>
<?php
function find($g){
    if($g == 'A'){
       $gt = 'ok';
    } else {
       $gt = 'no';
    }
    return $gt;
}
?>

 

안녕하세요..

스크립트에서 php function 을 쓸때요..

위처럼 보시면 인수값을 직접 넣고 하면 이상없이 되는데요..

스크립트의 변수를 넣어보려고 하면...되지가 않아서요..

제가 구문을 잘못 쓰는게 아닌가 싶기도 하고요..

원래 안되는건지도 잘 모르겠습니다....

해당 내용으로 검색이 잘 되지 않아서 이렇게 질문글 올려봅니다.


금요일 저녁 좋은시간 보내시구요..

읽어 주셔서 감사합니다.

이 질문에 댓글 쓰기 :

답변 4

클라이언트 스크립트와 서버 스크립트는 서로간 직접 호출을 할수 없습니다.

그런 경우 보통 Ajax, fetch 와 같은 추가적인 통신을 사용해 처리합니다.

 

문서에 담긴 코드의 실행 순서도 중요한데

<?php ... ?> 블럭의 코드가 서버에서 우선 실행 완료되고

사용자에게는 그 실행이 완료된 결과가 전달됩니다.

 

다음과 같은 코드를 포함하는 문서가 서버에 있다면


<?php
function find($g){
    if($g == 'A'){
       $gt = 'ok';
    } else {
       $gt = 'no';
    }
    return $gt;
}
?>
<script>
let ok = "<?php echo find('A'); ?>";
</script>

 

사용자가 문서를 서버에 요청할때 서버에서 실행된 후

사용자에게 전달되는 최종 문서는 다음과 같습니다.


<script>
let ok = "ok";
</script>

 

문서를 서버로부터 응답받는 시점에

서버 스크립트는 이미 실행 완료되어 사라집니다.

php 는 php일뿐, php내에서 자바스크립트에서 생성된 변수를 사용할 수 없습니다.

스크립트의 변수를 넣어보려고 하면...되지가 않아서요..

<=== 어떻게 했다는 것인지 설명이 있어야합니다

gggg는 php함수를 호출하여 나온 값을 넣은 변수인데 php함수 find를 스크립트에서 어떻게 호출 하나요?

let ggggg = "<?php echo find('A'); ?>"; 의 경우는...
find('A') 라고 그냥 직접 값을 넣은 상태를 말합니다.
저렇게 그냥 작성하면 php function 이 작동해서..콘솔 찍어보면 값이 찍힌걸 볼수 있습니다.
그냥 그 말이었습니다. ^^;;


$g = $_GET[g];    // 페이지에서 get 방식으로 받는다면 이렇게 써주고요


오타인것 같습니다

let tttttt = '<?php echo find("{$kind}"); ?>'; // 스크립트 변수값을 보낼경우
답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 2,661
© SIRSOFT
현재 페이지 제일 처음으로