테스트 사이트 - 개발 중인 베타 버전입니다

for문 질문입니다. 채택완료

copo 8년 전 조회 4,050

아래와 같은 소스를 작성했는데요

for ($i=0; $i<count($_POST['chk']); $i++) 만 있을때는 여러개의 체크박스를 선택, 수정버튼을 클릭해도 체크된 부분이 수정되었는데요 밑에 for ($i=0; $row=sql_fetch_array($result); $i++) {이 들어가니 하나만 수정이 됩니다.

 

어떤걸 잘 못 한건가요?

 

</p><p>for ($i=0; $i<count($_POST['chk']); $i++)
{
    $k = $_POST['chk'][$i]; 
   
    if ($_POST['act_button'] == "선택수정")
    {
        $sql = "update {$write_counsel_table}
                   set wr_14   = '{$_POST['is_score'][$k]}'
                 where wr_id      = '{$_POST['wr_id'][$k]}' ";
        sql_query($sql);</p><p>  
  for ($i=0; $row=sql_fetch_array($result); $i++) {</p><p>  </p><p>         if ($_POST['is_score'][$k] == '1') {</p><p>          $send_hp_mb = "$sms5[cf_phone]";  
             $recv_hp_mb = "$vi_3_temp[1]";  </p><p>             $send_hp = str_replace("-","",$send_hp_mb);  
             $recv_hp = str_replace("-","",$recv_hp_mb); </p><p>             $send_number =  "$send_hp"; 
             $recv_number = "$recv_hp"; </p><p>             $sms_content = $row[wr_name]." 님 완료 되었습니다.\\n ".$default[de_admin_company_name];      

             $SMS = new SMS; 
             $SMS->SMS_con($config['cf_icode_server_ip'], $config['cf_icode_id'], $config['cf_icode_pw'], $config['cf_icode_server_port']); 
             $SMS->Add($recv_number, $send_number, $config['cf_icode_id'], iconv("utf-8", "euc-kr", stripslashes($sms_content)), ""); 
             $SMS->Send(); 

             alert("성공적으로 접수되었습니다."); </p><p>       }</p><p>      }
}
    else if ($_POST['act_button'] == "선택삭제")
    {</p><p>
 

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

답변 3개

채택된 답변
+20 포인트
8년 전

$i를 두군데에 써서 그렇습니다. 한군데를 $x나 다른 변수로 바꿔주세요

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

답변에 대한 댓글 1개

c
copo
8년 전
답변 감사합니다.
for ($x=0; $row=sql_fetch_array($result); $x++) { 변경 해 보아도 똑같은 현상이네요^^;;

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

c
8년 전

</p><p>$k = $_POST['chk'][$i]; 
   
    if ($_POST['act_button'] == "선택수정")
    {
        $sql = "update {$write_counsel_table}
                   set wr_14   = '{$_POST['is_score'][$k]}'
                 where wr_id      = '{$_POST['wr_id'][$k]}' ";
        sql_query($sql); </p><p>

이부분 입니다. 

$_POST['is_score'][$k]의 값이 1일때 조건문이 필요해서요

 

이전 페이지에서 입력값을 가져올때의 부분입니다.

이전 페이지 소스

</p><p><td class="td_num">
            <label for="score_<?php echo $i; ?>" class="sound_only">처리</label>
            <select name="is_score[<?php echo $i; ?>]" id="score_<?php echo $i; ?>">
            <option value="0" <?php echo get_selected($row['wr_14'], "0"); ?>>접수</option>
            <option value="1" <?php echo get_selected($row['wr_14'], "1"); ?>>완료</option>
            </select>
        </td></p><p>

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

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

if ($_POST['is_score'][$k] == '1') {

여기 $k를 바꿔야 하지 않을까요? 

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

답변에 대한 댓글 2개

c
copo
8년 전
답변 감사합니다.
완료일때 $_POST['is_score'][$k]의 값이 1인데요
값이 1일때의 if문이 실행되어야 하는데요 바꾸면 IF문이 실행되지 않아 문제 입니다.

if ($_POST['is_score'][$k] == '1') { } 이부분만 없으면 됩니다.^^;
왕계란
8년 전
근데 저 $k는 어디서 오는 건가요?
위 코드만 봐서는 $k는 나와야 할 이유가 없는 것 같아서요.

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

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

로그인