CI 묻고 답하기

제목 controller의 $data 변수 내용이 view에서 어떤건 나오거 어떤 건 Undefined variable 오류가 나네요. ㅠㅠ
글쓴이 담덕 작성시각 2016/06/02 10:57:12
댓글 : 4 추천 : 0 스크랩 : 0 조회수 : 13245   RSS
Controller

$data["theme_rank"] = $this->theme_model->get_item_rank();

$q_total_page = $this->signal_model->total_page(10);

$q_rows = $this->signal_model->q_list(1, 10);

$data["message_q"] = array("total_page" => $q_total_page, "rows" => $q_rows);

$data["signals"] = $this->code_model->prod_div_list("40");

$this->load->view("pages/test", $data);

 

※ 모델에서 데이터 가져오는 확인했습니다.

 

View

<ul class="list-unstyled">

<?php

foreach ($theme_rank as $rank):

    $item_code  = $rank["item_code"];

    $item_name  = $rank["item_name"];

    $cur_price  = $rank["cur_price"];

    $rate       = $rank["item_rate"];

    $item_div   = $rank["item_div"];

    $theme_name = $rank["prod_name"];

    $transitiongoal = (100.0 * abs($rate)) / 30.0;

    $color = "";

    if ($rate > 0) {

        $bar = "progress-bar-danger";

        $color = "icomoon-icon-arrow-up-2 color-red";

    } else if ($rate < 0) {

        $bar = "progress-bar-warning";

        $color = "icomoon-icon-arrow-down-2 color-blue";

    }

    $bar = ($rate > 0 ? "progress-bar-warning" : ($rate < 0 ? "progress-bar-info" : "progressbar") );

?>

    <li>

        <span class="s24 <?=$color?>"></span> <?=$rate?>% <?=$item_name?> : <?=$theme_name?>

        <div class="progress progress-bar-sm">

            <div class="progress-bar <?=$bar?>" role="progressbar" style="width: <?=$transitiongoal?>%;"></div>

        </div>

    </li>

<?php endforeach ?>

</ul>

여기까지는 잘 나옵니다.

 

<ul class="timeline timeline-icons" id="signals">

<? foreach ($message_q["rows"] as $message): ?>

<?

$url = ($message["url"] == "" ? "#" : $message["url"]);

?>

    <li>

        <p>

            <a href="<?=$url?>"><span style="color:<?=$message["message_color"]?>"><?=$message["message"]?></span></a>

            <span class="timeline-icon"><?=$message["icon"]?></span>

            <span class="timeline-date"><?=$message["reg_date"]?></span>

        </p>

    </li>

<? endforeach ?>

</ul>

$url, $message 변수가 Undefined variable 오류 발생

 

<?foreach ($signals as $signal) :?>

    <?=$num?><?=$signal["code_data"]?>,<?=$signal["code_name"]?><br>

<?

    $num++;

endforeach

?>

$signal 변수 Undefined variable 오류 발생...

원인을 알 수가 없네요. ㅠㅠ

 

 다음글 node js와 CI (12)
 이전글 세션 sess_expire_on_close 같은 쿠키도... (2)

댓글

kaido / 2016/06/02 11:13:10 / 추천 0

컨트롤러에서 $data['url'] = ''; //이런 아이가 있어야 합니다.

그게 아니면 isset 등으로 체크해 주세요.

오류 문장 대로 해당 변수가 없다는 의미입니다.

 

모델에서 데이터가 정말로 잘 넘어왔는지, 어떤 형태로 넘어 왔는지 다시 확인해 보셔야 합니다.

 

잠시 눈 좀 식히시고 천천히 다시 살펴보시면 이상한 점을 찾으실 것입니다.

담덕 / 2016/06/02 13:36:29 / 추천 0

원인을 알았습니다. -_-

php 코드 시작할 때

<? 이게 아니라

<?php 이 걸루 다 교체하니까 문제없이 돌아갑니다.

이게 어떤 차이가 있는지 모르겠지만 어제부터 지금까지 삽질한 거 생각하면... -_-

어쨋든 해결되서 맘이 가벼워졌네요. ^^;

변종원(웅파) / 2016/06/02 13:38:29 / 추천 0

shot tag는 기본적으로 사용하지 않는 것이 좋습니다.

php.ini의 기본설정이 숏태그 사용하지 못하도록 되어 있습니다.

kaido / 2016/06/02 13:39:01 / 추천 0

숏코드 설정을 안 하셨군요.

숏코드를 사용 하실 거면

 

config.php 에서 short_tag 부분에서 true

php.ini 에서 short_tag_open =  On 으로 변경.

 

숏태그를 사용 할 수 없는 환경이 될 수 있다는 가정을 하면 숏태그를 사용 안 하시는 것도 좋습니다.