Javascript 함수 내에서 PHP변수에 javascript 변수 전달하는 방법

Javascript 함수 내에서 PHP변수에 javascript 변수 전달하는 방법

QA

Javascript 함수 내에서 PHP변수에 javascript 변수 전달하는 방법

답변 1

본문

Javadscript 내에서 PHP 변수인 $group12 에 Javascript 변수인 gr1 의 내용을 전달하고 싶습니다.

전체의 소스에서는 첫번째 selected value에 따라 2번째 select를 구성하는 부분은 잘 되고 있으나
choice_group() 함수는 별도로 ajax로 동작되는 부분의 일부입니다.
아래의 소스는 첫번째 select 의 selected value 인 gr1을 받아서 mysql 에 변수로 전달하는 내용입니다.

PHP 내에서 Javadscript 변수의 사용은 구글링으로 $group12 = " <script>document.write (gr1);</script> "; 로 찾아 적용해 보았으나
Javadscript 함수 내에서 <script></script> 를 중복 사용하게 되는 오류나 나는 군요.

이런 경우의 해결 방법은 없나요?

 

<select name="grouping2" id="grouping2">

</select>

 

<script type="text/javascript">

function sel_group2(gr1) {

    <?php

    //        $group12 = " <script>document.write (gr1);</script> ";

    $result = mysqli_query($connect,"SELECT grouping2 FROM `$sel_group` WHERE grouping1='$group12' ORDER BY grouping2") OR die(mysqli_error($connect));

    $total = mysqli_num_rows($result);

    $total = $total + 1;

    echo " document.ad_data.grouping2.length = $total; ";

    $i = 1;

    while($data = mysqli_fetch_object($result)) {

        print("

        document.ad_data.grouping2.options[$i].text = '$data->grouping2';

        document.ad_data.grouping2.options[$i].value = '$data->grouping2';

        ");

        $i++;

    }

    ?>

}

 

function choice_group(gr1) {

    // process...

    sel_group2(gr1);

    // process...

}

</script>

이 질문에 댓글 쓰기 :

답변 1

처음 시작하면 흔히 하는 실수입니다.
이에 왜 문제가 되냐 하면은
php 코드가 실행되고 최종으로 html 코드를 보여줍니다. php가 이미 실행이 끝났다는 의미입니다.
그래서 반대로 js함수를 호출한다고 해서 php코드가 실행할 수 없다는 의미입니다.
sel_group2() 실행하기 이전에 php가 실행되어서 document.ad_data.grouping2.option... 코드를 이미 생산했다는 말입니다.
소스 보기를 해보시면 구분이 가실겁니다.
이걸 해결하는 방법은
1 js에 사용될 값을 디비에서 미리 가져와서 js 배열에 담은 후 js를 통하여 필요한 값만 취하면 됩니다.
2 1번 데이터가 너무 크거나 다른 데이터를 보여주면 안된다면 ajax를 통신하는 추가 php파일을 제작해야 합니다.

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 2,432
© SIRSOFT
현재 페이지 제일 처음으로