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

foreach문이 돌때마다 정보가 바뀌었으면 좋겠어요. 채택완료

진경쓰 4년 전 조회 1,741

안녕하세요 질문이 있어서 글을 올려 봅니다. 

제가 지금 아래와 같이 만들었는데요, foreach문이 돌때마다 $daily[$i]; 이 매번 달라 졌으면 좋겠는데 지금은 계속 동일하게 나옵니다. controller쪽을 여러번 바꿔보고 있는데 마땅히 좋은 방법이 떠오르지 않아 질문글 올려 봅니다. 감사합니다~~

 

view

</strong></p>

<p><?php</p>

<p>foreach ($posting as $detail) {

    if ($detail->posting_type == 0) {

        ?>

<tr>

            <input  type="hidden" name="posting_type[]" value="0">

            <td><input  type="hidden" name="report_day[]" value="<?=$detail->report_day?>"><?=$detail->report_day?>일</td>

            <td><input  type="hidden" name="hospital_id[]" value="<?=$detail->hospital_id?>"><?=$detail->hosp_name?></td>

            <td name="last_month"><input  type="hidden" name="last_month[]" value="<?=$detail->last_month?>"><?=$detail->last_month?>개</td>

            <td name="total"><input  type="hidden" name="total" value="<?=$detail->total?>"><?=$detail->total?>개</td>

             <?     for($i=0;$i<$maxDay;$i++){     ?>

             <td name="posting_day"><?php echo $daily[$i]; ?>

             </td>

            <?        }            ?>

            <td name="last_month"><?=$detail->last_month?>개</td>

        </tr>

<?php

    } //if

} //foreach

?></p>

<p><strong>
 

 

 

controller

</strong></p>

<p>$arr = array();

     for($i=0; $i<5; $i++){

       $arr[$i] = rand(1, $maxDay);

                                                         $nalja9 = "$thisY-$thisM-$arr[$i]";

                                                        $yoeil = date('w' , strtotime($nalja9) );</p>

<p>                                                    if($yoeil==0||$yoeil==6){

                                                    //    print_r('   주말                '); 

                                                        $i--;

                                                        continue;

                                                        }</p>

<p>       for($j=0; $j<$i; $j++)

       {

         if($arr[$i] == $arr[$j])

         {

           $i--;

           break;

         }

       }  

     }

    sort($arr);</p>

<p>

$result=array();

                for($day=1; $day<=$maxDay;$day++){  

                         if(in_array($day, $arr)){

                            array_push($result, "1");

                          } else {

                            array_push($result, "");

                          }

                }</p>

<p> </p>

<p>    $data['daily'] = $result;</p>

<p>     $this->load->view('posting',$data);</p>

<p><strong>
 

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

답변 1개

채택된 답변
+20 포인트

view 에서 $daily값 선언이 보이지 않고 

controller 쪽에서 $data 에 배열선언이 보이지 않네요

 

1. 컨트롤러 $data변수 확인 (제대로 들어가있는지 확인)

2. array_push 로 daily 를 넣었으면 view 에서도 $detail-> daily 형태로 뿌려주기

순서대로 디버깅 해보시기 바랍니다

 

 

 

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

답변에 대한 댓글 1개

진경쓰
4년 전
넵!! 답변 감사드려요!! 우선 지금 controller에서 원하는 만큼 담긴거 확인했고 view에 알맞게 정보를 전달해서 보여주기만 하면 되는 상황입니다. 그런데 지금 그 부분이 잘되는 상황인데 혹시 도움 좀 주실수 있을까요..? 바쁘시면,, 그냥 패스하셔도 됩니다. 감사합니다~~

view
[code]
//여기 foreach 써보고 있는데 잘 되지 않네요,,,
<? for($i=0;$i<30;$i++){ ?>
<td><?php echo $daily[$i]; ?> </td>
<? } ?>
[/code]

//컨트롤러는 거의 동일합니다..
[code]
for($t=0;$t<2;$t++){
$arr[] = array();
for($i=0; $i<5; $i++){
$arr[$i] = rand(1, $maxDay);
$nalja9 = "$thisY-$thisM-$arr[$i]";
$yoeil = date('w' , strtotime($nalja9) );

if($yoeil==0||$yoeil==6){
// print_r(' 주말 ');
$i--;
continue;
}

for($j=0; $j<$i; $j++)
{
if($arr[$i] == $arr[$j])
{
$i--;
break;
}
}
}
sort($arr);
//array_push($arr,$arr[$t]);

//print_r($arr);



$result=array();
for($day=1; $day<=$maxDay;$day++){
if(in_array($day, $arr)){
array_push($result, "1");
} else {
array_push($result, "");
}
}
print_r($result);
}
[/code]

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

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

로그인