회원정보 셀렉트박스 수정시 초기화 채택완료

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

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

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

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

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

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

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

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

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

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

Copy
<?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&amp;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개

채택된 답변
+20 포인트

회사선택 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>

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

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

이미지 때문에 새로운 답변으로 남겨두었습니다 확인해 주시면 감사하겠습니다

댓글을 작성하려면 로그인이 필요합니다.

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

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

Copy
<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

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

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

로그인 후 평가할 수 있습니다

답변에 대한 댓글 2개

<option value='<?php echo $mb['mb_1'] ?>' selected="selected"><?php echo $mb['mb_1'] ? $mb['mb_1'] : '회사 선택' ?></option>
이렇게 수정해보세요
진짜 진짜 너무 감사합니다 ..!

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인
🐛 버그신고