ajax 를 이용한 다중 select 도움 부탁 드립니다.
본문
안녕하세요.
현재 시(co_si) 를 선택 하면 해당 하는 시의 구군(co_gu)를
출력 하고 싶어 여러가지를 시도 해보다가 안되서 도움을 요청 하고자
올립니다.
아래는 g5_code 테이블의 필드와 값들 입니다.
co_si = 시도
co_gu = 구군
다음으로는 제가 시도 해본 방법 입니다.
area.php
<!-- 시도 출력 -->
<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
$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
common.php 파일한번가져와보세요 common.php 인클루드를 안해주면 sql_query함수랑 sql_fetch_array 함수사용을 못합니다.
<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
<?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>';
}
?>
!-->!-->
답변을 작성하시기 전에 로그인 해주세요.