ajax 로 db조회후 값을 select 태그에 넣어주기(초보임)
본문
*파일 이름 : list.skin.php
<script type="text/javascript">
function getBranch(domestic) {
var domestic;
alert(domestic);
$.ajax({
cache : false,
url : "/est_ajax_get_company.php",
data : "domestic=" + domestic,
dataType : "json",
success : function(o) {
$("#company").empty();
$("#company").append('<option value="">제조사</option>');
$.each(o, function(i, e) {
$("#company").append("<option value='"+e['brcode']+"'>"+e['sname']+"</option>");
});
}
});
}
< /script>
< table width="1000" cellpadding="0" cellspacing="0" align=center border=0>
< tr><td>
<table width="100%" cellpadding="0" cellspacing="0" border="0" align=center>
<form name="search_balance" method="post">
<col width = 180/>
<col/>
<tr height=30><td></td></tr>
<tr><td colspan=2 height=3 bgcolor=#dddddd></td></tr>
<tr>
<td class=s_head>분류</td>
<td class=s_text>
<select name=s_category id="s_category" itemname="분류">
<? for($i=0; $i < sizeof($S_CATEGORY); $i++) { ?>
<option value="<?=$i?>"><?=$S_CATEGORY[$i]?></option>
<? } ?>
</select>
<?
$result = mysql_query("select * from g4_shopb where bcode = '$member[mb_id]' ");
for($i = 0; $row = mysql_fetch_array($result); $i++){
$br_list[$i] = $row;
}
if($br_list){
?>
<select name="brcode" id="brcode" onchange="getBranch(this.value)">
<option value="">전체지사</option>
<?
for($i = 0 ; $i < count($br_list); $i++) {
echo "<option value='".$br_list[$i][scode]."'";
if($brcode == $br_list[$i][scode]) echo " selected";
echo ">".$br_list[$i][sname]."</option>";
}
?>
</select>
<? } ?>
<select name="company" id="company" onchange="Select_branch(this.value)">
<option value=""><?if($maker) echo $maker; else echo "지점선택";?></option>
</select>
</td>
</tr>
*파일이름 : est_ajax_get_company.php
$domestic = $_GET[domestic];
$result = mysql_query("select * from g4_shop where brcode = '$domestic' ");
$html = "[";
$rowCnt = 0;
while($row=@mysql_fetch_array($result)) {
if($rowCnt != 0) $html .= ", ";
$html .='{';
$html .='"brcode":"'.$row[scode].'"';
$html .=',"sname":"'.$row[sname].'"';
$html .='}';
$rowCnt++;
}
$html .= "]";
echo $html;
아작스를 이제 처음접한 초보입니다.. $html 의 값은 잘나오는데요 갑을 어떻게 가져와서 select 태그에 값을 나오게 해야할지 도무지 안됩니다. ㅠㅠ 고수님들의 설명좀 부탁드립니다..
답변 2
php에서 json값을 만들어주려면 그냥 만들기만 하는게 아니라 json_encode를 해주셔야해요.
http://php.net/manual/kr/function.json-encode.php
레퍼런스이고요.
est_ajax_get_company.php 여기에서 마지막에 echo $html을 echo json_encode($html)을 해주셔야지 json형식으로 값이 넘어가서 받는곳에서 json형식으로 값을 받을수가 있어요.
그리고 값이 넘어오는걸 보기 제일 쉬운방법은 무슨 브라우저든 개발자도구 여시고 콘솔을 보시면되요. 그럼 json값 넘어오는것도 콘솔에 남아요.
json으로 만들어 값을 가져오면 json을 다시 디코딩 해줘야합니다.
success : function(o) {
o = $.parseJSON(o);
}