채택완료

ajax 를 이용한 다중 select 도움 부탁 드립니다.

2019-02-26 (화) 21:43:34 6,809

안녕하세요.

현재 시(co_si) 를 선택 하면 해당 하는 시의 구군(co_gu)를

출력 하고 싶어 여러가지를 시도 해보다가 안되서 도움을 요청 하고자

올립니다.

아래는 g5_code 테이블의 필드와 값들 입니다.

co_si = 시도

co_gu = 구군

3695863738_1551184297.0629.png

다음으로는 제가 시도 해본 방법 입니다.

area.php

Copy
<!-- 시도 출력 -->

<select id="sido" onchange="selectarea()">

     <option value="0">선택하세요</option>

     <?

          $sql = "SELECT co_si FROM g5_code GROUP BY co_si"; // co_si 로 묶어 중복된 값을 제거

          $result = sql_query($sql);

 

          for($i=0; $row=sql_fetch_array($result); $i++) {

     ?>

          <option value="<?php echo $row['co_si']; ?>"><?php echo $row['co_si']; ?></option>
     <?
          }

     ?>

</select>

<!-- 시도 출력 -->

 

<!-- 구군 출력 -->

<select id="gugun">

     <option value="0">선택하세요</option>

</select>

<!-- 구군 출력 -->

 

<script>

     function selectarea() {

          var sido = $('#sido').val();

 

          $.ajax({

               type: 'post',

               url: './ajax.area.php',

               data: { sido : sido },

               success: function(data) {

                    alert(data);
               }

          });
     }

</script>

ajax.area.php

Copy
$sido = $_POST['sido'];

 

     $sql = "SELECT co_gu FROM g5_code WHERE co_si = '$sido'";

     $result = sql_query($sql);

     $row = sql_fetch_array($result);

 

     echo $row['co_gu'];

위와 같은 방식으로 area.php 에서 sido의 값은 ajax.area.php로 보낸후

echo $row['co_gu']; 로 받아와 alert() 로 출력 하게 되면

시에 해당하는 co_gu의 갯수를 출력 합니다.

ajax 로 보내는게 잘못 된건지 ajax.area.php 에서 처리 하는 방식이 잘못된것인지

모르겠습니다.....도와주십쇼!(__)

답변 1개 / 댓글 1개

채택된 답변
+20 포인트

common.php 파일한번가져와보세요 common.php 인클루드를 안해주면 sql_query함수랑 sql_fetch_array 함수사용을 못합니다.

Copy
<script>
     function selectarea() {
          var sido = $('#sido').val();
 
          $.ajax({
               type: 'POST',
               url: './ajax.area.php',
               data: { sido : sido },
               success: function(data) {
                    $("#gugun").html(data);
               }
          });
     }
</script>

ajax.area.php

Copy
<?php
include_once($_SERVER['DOCUMENT_ROOT'] ."/common.php");

$sido = $_POST['sido'];

$sql = "SELECT co_gu FROM g5_code WHERE co_si = '$sido' ";
$result = sql_query($sql);

for($i=0; $row=sql_fetch_array($result); $i++) {
    echo '<option value="'.$row['co_gu'].'">'.$row['co_gu'].'</option>';
}
?>

답변에 대한 댓글 1개

아, 커먼이나 기타 jquery 파일은 생략 했습니다!
정말 감사합니다!

답변을 작성하려면 로그인이 필요합니다.