3단 셀렉트값 db의 value값 자동 선택되기.. 정보
3단 셀렉트값 db의 value값 자동 선택되기..본문
<select name="ca_id" onchange="categoryCH(this.form)">
<option value="">카테고리
<?
$script = "";
$sql = " select * from $g4[category_table] ";
$sql .= " order by ca_id ";
$result = sql_query($sql);
for ($i=0; $row=sql_fetch_array($result); $i++)
{
$len = strlen($row[ca_id]) / 2 - 1;
$nbsp = "";
for ($i=0; $i<$len; $i++)
$nbsp .= " ";
$str = "<option value='$row[ca_id]'>$nbsp$row[ca_name]\n";
$category_select .= $str;
echo $str;
}
?>
</select>
<script> document.fitemform.ca_id.value = '<?=$it[ca_id]?>'; </script>
<? if ($w == "") { ?>
<?=help("기본분류를 선택");?>
<? } ?>
<?
for ($i=2; $i<=3; $i++)
{
echo " <select name='ca_id{$i}'><option value=''>= {$i}차 분류 ={$category_select}</select>\n";
echo "<script> document.fitemform.ca_id{$i}.value = '".$it["ca_id{$i}"]."'; </script>\n";
}
?>
function categoryCH(f)
{
var idx = f.ca_id.value;
}
categoryCH(document.fitemform);
</script>
카테고리 자동선택은 위와같은데요..
제가 각 아이템마다 별도의 필드를 추가하여 해당 값을 자동 셀렉트되게 하고싶습니다.
아이템 테이블 g4_item에서 해당 필드를 읽어와서 아래와같이 한개일때는 괜찮은데.
셀렉트할게 많아졌습니다. 다수... 아래와같이하려니 속도도 그렇고 여러모로 힘들거같아서
카테고리 선택처럼 for문으로 돌리는 형식으로 하고싶습니다..
좀 어찌해야할지 좀 도와주십시요.
<select id=it_site name='it_site'>
<option value=""<?php if ($it[it_site]=='') { ?>selected='selected'<?php } ?>>선택하세요</option>
<option value="sir"<?php if ($it[it_site]=='1') { ?>selected='selected'<?php } ?>>sir</option>
<option value="naver"<?php if ($it[it_site]=='2') { ?>selected='selected'<?php } ?>>naver</option> </select>
댓글 전체
<select id=it_site name='it_site'>
<option value="" data-site="">선택하세요</option>
<option value="sir" data-site="1">sir</option>
<option value="naver" data-site="2">naver</option>
</select>
<script type="text/javascript">
$('#it_site').find('option').each(function() {
if($(this).attr('data-site') == '<?=$it['it_site']?>') $(this).attr('selected', 'selected');
});
</script>
option 필드에 아무 field (위 예제에서는 'data-site') 를 추가해놓고 자바스크립트(jquery)로 선택하도록 할 수 있겠네요
<option value="" data-site="">선택하세요</option>
<option value="sir" data-site="1">sir</option>
<option value="naver" data-site="2">naver</option>
</select>
<script type="text/javascript">
$('#it_site').find('option').each(function() {
if($(this).attr('data-site') == '<?=$it['it_site']?>') $(this).attr('selected', 'selected');
});
</script>
option 필드에 아무 field (위 예제에서는 'data-site') 를 추가해놓고 자바스크립트(jquery)로 선택하도록 할 수 있겠네요
음.. 또는 더 간단하게
<script type="text/javascript">
$('#it_site option[data-site=<?=$it['it_site']?>]').attr('selected', 'selected');
</script>
스크립트를 요롷게 해도 되겠네요
<script type="text/javascript">
$('#it_site option[data-site=<?=$it['it_site']?>]').attr('selected', 'selected');
</script>
스크립트를 요롷게 해도 되겠네요
답변 감사드립니다~ 근데 저의 질문을 오해하신듯합니다. 옵션값을 늘린다는게 아니라. 저 셀렉트박스가 여러개로 늘어난다는것입니다.... 지금 알려주신건 옵션의 숫자가 많이늘어날때 간편하라고 만들어주신것같은데요? it_site , it_url, it_kind 머이런식으로 각 테이블안에 필드를 추가하여 데이터를 써주려합니다. 이걸 3개의 필드값을 for문으로 돌려서 세개의 셀렉트에 자동으로 선택되게 해주려는것이지요...
<script type="text/javascript">
$('#it_site option[data-site=<?=$it['it_site']?>]').attr('selected', 'selected');
$('#it_url option[data-url=<?=$it['it_url']?>]').attr('selected', 'selected');
$('#it_kind option[data-kind=<?=$it['it_kind']?>]').attr('selected', 'selected');
</script>
요롷게 하시면 되죠.. select 개수가 늘어난다고 문제가 될건 없습니다
각 select 의 option 에 원하는 필드데이터 셋팅해놓고
js 로 각각 selected 하시면 됩니다
$('#it_site option[data-site=<?=$it['it_site']?>]').attr('selected', 'selected');
$('#it_url option[data-url=<?=$it['it_url']?>]').attr('selected', 'selected');
$('#it_kind option[data-kind=<?=$it['it_kind']?>]').attr('selected', 'selected');
</script>
요롷게 하시면 되죠.. select 개수가 늘어난다고 문제가 될건 없습니다
각 select 의 option 에 원하는 필드데이터 셋팅해놓고
js 로 각각 selected 하시면 됩니다
답변 감사드립니다^^