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

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

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

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

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

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

회원로그인

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