회원정보 셀렉트박스 수정시 초기화

매출이 오르면 내리는 수수료! 지금 수수료센터에서 전자결제(PG)수수료 비교견적 신청해 보세요!
회원정보 셀렉트박스 수정시 초기화

QA

회원정보 셀렉트박스 수정시 초기화

본문

그누보드를 뒤지고 뒤져서 겨우 성공한 경험이 많아 늘 도움 받고 있어 감사합니다

회원정보 여분필드 mb_1 ,2,3 사용하여 다중 셀렉트박스로 회사,부서,팀 명으로 사용하고 있습니다

회사, 부서, 팀 명은 g5_part 테이블에서 company , part , team 열로 저장 되어있는 것을

불러와서 각각 g5_member 테이블에 mb_1, mb_2, mb_3 에 입력하고 있구요

여기서 질문!  회원 가입 필드에서 받은 값 3가지가 제대로 입력은 되어 있어 

관리자메뉴 - 회원관리로 들어가면 다 확인은 됩니다

관리자가 수정하거나 회원 본인이 수정 할때에는 값을 불러오지 못해 매번 입력해주거나

입력하지 않고 저장 했을시엔 없는 것으로 인식하고 모두 빈 값으로 저장 됩니다.

셀렉트박스는 유지 하면서 입력 되어있는 값이 기본적으로 세팅이 되도록 하고 싶습니다.

어떻게 해결해야 할까요 ㅠ.ㅠ

 


<?php
//부서 테이블 관련 SQL 쿼리문
$sql = " select * from g5_part ";
$res = sql_query($sql);
for ($i=0; $row = sql_fetch_array($res); $i++) {
      $nm[$i] = $row['company'].'|1|'.$row['part'].'|2|'.$row['team'].'|3|';
}
?>
<!---SQL 셀렉트박스 시작 -->
 
                <script type="text/javascript">
                function getCataAllId(cmd){
                cmd = eval(cmd);
                cmd2 = cmd +1;
                initCataID(cmd);
                var ch = "";
                for(var idx = 1; idx < cmd2; idx++){
                    ch = ch + eval("mb_"+idx+".value") + "|"+idx+"|";
                }
                var v = 0;
                var temp = "";
                var tempv = "";
                var arg = "";
                for(var m = 0; m < menuArr.length; m ++) {
                    arg = menuArr[m].substring(menuArr[m].indexOf("|"+cmd+"|")+3,menuArr[m].indexOf("|"+cmd2+"|")) ;
                    temp = menuArr[m].substring(0, menuArr[m].indexOf("|"+cmd+"|")+3);
                    if(temp == ch && tempv != arg ){
                            v++;
                            eval("mb_"+cmd2+".length = mb_"+cmd2+".length + 1");
                            eval("mb_"+cmd2+".options["+v+"].value = arg ");
                            eval("mb_"+cmd2+".options["+v+"].text  = arg ");
                    }
                    if(temp != ch){
                        tempv = "";
                    }else{
                        tempv = menuArr[m].substring(menuArr[m].indexOf("|"+cmd+"|")+3,menuArr[m].indexOf("|"+cmd2+"|"));
                    }
                }
                }
               
                function initCataID(cmd){
                cmd = eval(cmd);
                if(cmd == 1){
                    mb_2.length = 1;
                    mb_3.length = 1;
                    mb_2.selectedIndex = 0;
                    mb_3.selectedIndex = 0;
                }
                if(cmd == 2){
                    mb_3.length = 1;
                    mb_3.selectedIndex = 0;
                }
                }

 
                </script>
                <tr>
                    <th scope="row"><label for="mb_level">회원 권한</label></th>
                    <td><?php echo get_member_level_select('mb_level', 1, $mb['mb_level'], $mb['mb_level']) ?></td>
                    <!--<th scope="row">포인트</th>
                    <td><a href="./point_list.php?sfl=mb_id&stx=<?php echo $mb['mb_id'] ?>" target="_blank"><?php echo number_format($mb['mb_point']) ?></a> 점</td> -->
                    <th scope="row"><label for="mb_1">회사 구분</label></th>
                    <td>
                        <select name = 'mb_1' id='mb_1' OnChange='javascript:getCataAllId(1)' class="select1">
                        <option value='<?php echo $part['company'] ?>' selected="selected">회사 선택</option>
                        </select>
                    </td>
                </tr>
                <tr>
                    <th scope="row"><label for="mb_2">부 구분</label></th>
                    <td>
                        <select name = 'mb_2' id='mb_2' OnChange='javascript:getCataAllId(2)' class="select2">
                        <option value='<?php echo $part['part'] ?>' selected="selected">부 선택</option>
                        </select>
                    </td>
                    <th scope="row"><label for="mb_3">팀 구분</label></th>
                    <td>
                        <select name = 'mb_3' id='mb_3' OnChange='javascript:getCataAllId(3)' class="select3">
                        <option value='<?php echo $part['team'] ?>' selected="selected">팀 선택</option>
                        </select>
                    </td>
                </tr>
                <script type="text/javascript">
                /* JSON encode, parse  */
                var stuff = <?php echo json_encode($nm); ?>;
                var str = JSON.stringify(stuff);
                var menuArr = new Array();
                    menuArr= JSON.parse(str);
                var z1 = 0;
                var temp1 = 0;
                initCataID(1);
                for(var m = 0; m < menuArr.length; m ++) {
                    if ( menuArr[m].substring(0, menuArr[m].indexOf("|1|")) != temp1 ){
                        mb_1.length =  mb_1.length + 1;
                        mb_1.options[z1+1].value = menuArr[m].substring(0, menuArr[m].indexOf("|1|")) ;
                        mb_1.options[z1+1].text = menuArr[m].substring(0, menuArr[m].indexOf("|1|")) ;
                        temp1 = menuArr[m].substring(0, menuArr[m].indexOf("|1|"));
                        z1++;
                    }
                    /*  index 1에 중복 제거입니다.  */
                }
                </script>
 
                <!-- SQL 셀렉트박스 끝 -->
 

이 질문에 댓글 쓰기 :

답변 2

회사선택 option 위에 아래 소스를 추가해주면 될것 같네요.

<option value='<?php echo $member['mb_1'] ?>' selected="selected"><?php echo $member['mb_1'] ?></option>

 

부 구분 추가

<option value='<?php echo $member['mb_2'] ?>' selected="selected"><?php echo $member['mb_2'] ?></option>

 

팀 구분 추가

<option value='<?php echo $member['mb_3'] ?>' selected="selected"><?php echo $member['mb_3'] ?></option>

 

댓글 남겨주셔서 감사합니다 ^^ 

일단 임시방편으로 회원이 수정할때에는 건들지 않는이상 원래 그대로 있는걸로 해결이 됐는데요


<option value='<?php echo $member['mb_1'] ?>' selected="selected"><?php echo $member['mb_1'] ?  $member['mb_1'] : '회사 선택'  ?></option>

의 방법으로 새로 회원가입 할 때에 없는것도 해결 했습니다 그런데,

 

관리자 메뉴에서 다른 회원을 수정할 때에는 회원 본인의 값이 들어와 지지 않습니다

 

a라는 회원이 있을 때 관리자가 a의 회원 정보를 수정하기 위해 들어가면 

a의 정보가 들어오는게 아닌 관리자의 회사,부서,팀 정보가 들어오게 됩니다.

 

+ 추가로, 

2041531885_1661914175.5835.png

이런식으로 표시가 되고 있는데

회원이 정보수정을 할때에 기존 값과 같은 값은 하나만 나오게 할 수 있을까요?

답변을 작성하시기 전에 로그인 해주세요.
전체 40
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT