회원관리

회원관리

QA

회원관리

답변 3

본문

그누보드형식처럼

 

<select> 를 만들었고

 

회원리스트를 만들었습니다. (관리자페이지입니다.)

 

그리고 각 회원마다 체크박스가 있고 select박스가 있습니다.

 

회원이 총 3명이 있다면, 3명중에서 1명의 select 를 2로 골라서

 

선택수정 이라고 누르면 그 체크 된 사람만 바뀌게 했습니다.

 

근데.. 정렬 방식을 order by no desc 로 줘서 윗순으로 주게해놨는데..

 

이게 3명중에서 한명을 골라 select를 2로지정해놓고 그 사람을 체크후, 선택수정

 

이라고 누르면 select 의 값 을 제대로 받아오지 못합니다.

 

3명의 회원중에서 맨 밑에있는 회원은 select 를 변경하고 체크후 수정누르면

 

잘 바뀌는데 맨 밑에 애만 잘 바뀌고 위에 애들은 바뀌지 않습니다..

 

도통 어떻게 된걸까요...

 

 


  <tr>
    <?php if($member['adm_auth'] == 'super'){ ?>
    <td width="5%" style="text-align: center;">
      <input type="checkbox" name="userid[]" value="<?php echo $row['userid'] ?>" style="cursor: pointer;">
    </td>
    <?php } ?>
    <td class="result_menu">
      <?php echo $row['userid'] ?>
    </td>
    <td class="result_menu">
      <?php if($member['adm_auth'] == 'super'){ ?>
      <select name="auto" style="font-family: '돋움', dotum; border: 1px solid #ccc;">
        <option value="0" <?php if($row['auto'] == '0'){ ?>selected <?php } ?>>0</option>
        <option value="1" <?php if($row['auto'] == '1'){ ?>selected <?php } ?>>1</option>
        <option value="2" <?php if($row['auto'] == '2'){ ?>selected <?php } ?>>2</option>
        <option value="3" <?php if($row['auto'] == '3'){ ?>selected <?php } ?>>3</option>
      </select>
      <?php }elseif($member['adm_auth'] == 'normal'){ ?>
        <?php echo $row['auto'] ?>
      <?php }else{ ?>
      <?php mysql_close($connect); ?>
      <?php } ?>
    </td>
    <td class="result_menu">
      <?php echo $row['logindate'] ?>
    </td>
    <td class="result_menu">
      <?php echo $row['mypoint'] ?><br />
      <?php echo $row['mymoney'] ?>
    </td>
    <td class="result_menu">
      <?php echo $row['myname'] ?><br>
      <?php echo $row['mynick'] ?>
    </td>
    <td class="result_menu">
      <?php if($member['adm_auth'] == 'normal'){ ?>
      <?php echo $row['bank_number'] ?>
      <?php }else{ ?>
      <?php echo $row['bank_number'] ?><br>
      <?php echo $row['bank_pass'] ?>
      <?php } ?>
    </td>
    <td class="result_menu">
      <?php echo $row['chu'] ?>
    </td>
    <td class="result_menu">
      <?php echo $row['bank_name'] ?><br>
      <?php echo $row['bank'] ?>
    </td>
    <td class="result_menu">
      <?php echo $row['phone'] ?>
    </td>
    <td class="result_menu">
      <?php echo $row['regdate'] ?>
    </td>
    <td class="result_menu">
      <?php echo $row['ip'] ?>
    </td>
    <td class="result_menu">
      <a href="member_confirm_update.php?confirm_id=<?php echo $row['userid'] ?>&user_connect=lib.php&list_type=<?php echo $list_type ?>" style="color: #000;">수정</a>
    </td>
    <td class="result_menu" colspan="10">
      <?php echo $user_state ?>
    </td>
    <tr><td height="1" colspan="30" class="bg-1_step-1"></td></tr>
  </tr>
  <?php
    }
  ?>
</table>
<table width="100%" border="0" align="center" cellpadding="0" cellspacing="0" class="min-width">
  <?php if($member['adm_auth'] == 'super'){ ?>
  <tr style="height: 10px;"></tr>
  <tr>
    <td colspan="15">
      <input type="submit" name="confirm" value="선택수정" class="mem_submit">
      <input type="submit" name="delete" value="선택삭제" class="mem_submit">
      <input type="submit" name="close" value="선택풀기" class="mem_submit">
    </td>
  </tr>

 

처리 부분

 


if($confirm == '선택수정')
{
for($i=0; $i < count($userid); $i++){
  
  $sql = "update member set auto = '{$auto}', waring_date = now() where userid = '{$userid[$i]}' ";
  echo $auto;
  exit;
}
}
 

이 질문에 댓글 쓰기 :

답변 3

아마도 while 문이 있는것 같은데 while문 위에 $seq = 0; 하시고  

<input type="checkbox" name="chkIndex[]" value="<?php echo $seq>" >
<input type="hidden" name="userID[]" value="<?php echo $userID>" >
로 하시고 select도 name='auto[]'로 하세요. while 문 마지막에 $seq++; 넣구요

 

$tempIdx = chkIndex[%i];

$tmp_auto = $auto[$tempIdx];

$tmp_userID = $userID[$tempIdx];

$sql "update member set auto = '{$tmp_auto}', waring_date = now() where userid = '{$tmp_userID}' "; 

 

이런식으로 될듯하네요.. 휴... 테스트 한번 해보세요.. 

 

체크박스로는 선택된 인텍스만 가지게 하고 그 인덱스로 멤버아이디와 수정될 셀렉트박스 값을 갖게 하는 겁니다.. 

각 회원별로 체크박스와 셀렉트가 있다는 건가요? 그럼 체크박스 3개에 셀렉트 3개? 그렇다면 셀렉트의 name도 배열형식이 되어야 하고... 셀렉트박스의 경우는 체크박스 인덱스와는 다르게 구성하셔야 합니다. 

 

왜냐하면 체크박스 카운트는 2로 for문의 i는 0,1 인덱스를 가지게 됩니다. 그럼 체크박스의 유저아이디 값은 정상적으로 넘어오는데 셀렉트는 그냥 순차적으로 0,1이 넘어오기에 예상과 다른 값을 가지게 됩니다. 

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
  • 질문이 없습니다.
전체 0
© SIRSOFT
현재 페이지 제일 처음으로