리스트에서 select 바로 반영하기 질문
본문
안녕하세요
리스트에서 select 변경 값을 바로 적용하는 스킨을 사용중입니다.
<?php
$sql_common = " from {$g5['member_table']} ";
$sql_search = " where (1) ";
$sql_search .= " and mb_id != '{$config['cf_admin']}' "; // 최고관리자 제외
$sql_order = " order by mb_id asc "; // ㄱㄴㄷ 순으로 정렬
$sql = " select count(*) as cnt {$sql_common} {$sql_search} {$sql_order} ";
$row = sql_fetch($sql);
$total_count = $row['cnt'];
$rows = 1000; // 목록수
$total_page = ceil($total_count / $rows); // 전체 페이지 계산
if ($page < 1) $page = 1; // 페이지가 없으면 첫 페이지 (1 페이지)
$from_record = ($page - 1) * $rows; // 시작 열을 구함
?>
<select name="wr_1" id="wr_q_<?php echo $i;?>" onchange="wr1_chk('<?php echo $i;?>','<?php echo $list[$i]['wr_id'];?>',this.value);">
<option value="">선택하세요.</option>
<?php
$sql_search .= "and mb_level = '4' ";
$sql = " select * {$sql_common} {$sql_search} {$sql_order} limit {$from_record}, {$rows}";
$result = sql_query($sql);
for ($i=0; $row=sql_fetch_array($result); $i++) {
?>
<option value="<?php echo $row['mb_id']; ?>"<?php echo get_text($list[$i]['wr_1'] == $row['mb_id']) ? " selected" : "";?>><?php echo $row['mb_id']; ?></option>
<?php } ?>
</select>
<script>
var wr1_chk = function(wr_num,wr_id,field) {
$.ajax({
type:"post",
url:"<?php echo $g5_skin_url;?>/list_up.php",
data:
{
wr_num : wr_num,
wr_id : wr_id,
wr_1 : field
},
dataType:"html",
success:function(res){
$("#wr_1_"+wr_num).val(res);
if(res){
alert(res+"(으)로 변경되었습니다");
}else{
alert("변경 실패");
}
location.reload();
}
});
}
</script>
레벨 4회원만 뽑아와서
리스트에서 select 박스로 변경함과 동시에
수정이 되는 스킨인데요
기존쓰던거에서
한개 더 사용하려고 하니
페이지 자체가 안나오고 있습니다. ㅠ
멤버 레벨 불러오는 과정에서 오류인것 같은데
for ($i=0; $row=sql_fetch_array($result); $i++) {
}
이부분을 빼면 페이지가 나오긴하는데
당연히 회원 리스트는 안나오구요..
<?php
for ($i=0; $i<count($list); $i++) {
if ($i%2==0) $lt_class = "even";
else $lt_class = "";
?>
리스트 상단 이 부분과 중복되어
문제가 발생하는거 같습니다...
어디가 잘못된걸까요.ㅠ
!-->답변 2
서버실행시점과 브라우저실행시점이 다르기때문에
동시에 동일한 이름의 서버실행시점의 파일이 실행되면
앞서 작동하는 내용이 사라지게될겁니다.
그런 비정상적인 작동을 해결하기위해서
Ajax등의 비동기 통신을 통한 다른 페이지를 이용해서 서버의 값을 가져온후에 브라우저의 값을 갱신하도록 구성하는게 올바른 방향입니다.
소스를 부분적으로 보여 주지 마시고
전체를 올려 보세요.
답변을 작성하시기 전에 로그인 해주세요.