2014-10-29 166 views
0

我想填充數據庫表中的條目的下拉選擇。
數據庫表從數據庫填充下拉列表

TABLE `events` (
    `event_id` INT(11) unsigned NOT NULL AUTO_INCREMENT, 
    `event_title` VARCHAR(255) NOT NULL, 
    `event_desc` TEXT, 
    `event_location` VARCHAR(255) NOT NULL, 
    `event_requirements` TEXT DEFAULT NULL, 
    `event_date` DATETIME NOT NULL, 
PRIMARY KEY (`event_id`) 

的代碼(在MVC架構):
控制器

function index() 
    { 
     $overview_model = $this->loadModel('Events'); 
     $this->view->dog_types = $overview_model->getEventTypes(); 
     $this->view->render('events/index'); 
    } 

模型

public function getEventTypes() 
    { 
     $sth = $this->db->prepare("SELECT event_id, event_title FROM events"); 
     $sth->execute(); 

     $events = array(); 

     foreach ($sth->fetchAll() as $event) { 
      $events[$event->event_id] = new stdClass(); 
      $events[$event->event_id]->event_title = $event->event_title; 
     } 
     return $events; 
    } 

查看

<select> 
     <?php foreach ($this->events as $event) { 
      echo "<option value='" .$event->event_title. "'>" .$event->event_title."</option>"; 
     }?> 
    </select> 

錯誤我越來越:

公告:未定義的屬性:查看:: $事件

警告:的foreach提供了無效的參數()

我對這一切都非常陌生,對於任何形式的幫助都會很開心!謝謝!!

回答

1

錯誤很明顯。你沒有一個名爲$ events的屬性。您填寫一個名爲

$this->view->dog_types 

而且在你看來,你將能夠訪問這樣的對象屬性:

<select> 
     <?php foreach ($this->dog_types as $event) { //or $events as $event depending what you indexed as 
      echo "<option value='" .$event->event_title. "'>" .$event->event_title."</option>"; 
     }?> 
    </select> 
+0

非常感謝你!我一直在查看代碼很長時間,以至於我沒有發現它! – Schwesi 2014-10-29 11:53:06

+0

你在使用CI嗎?如果不是,我會改變答案 – 2014-10-29 11:55:01

+0

我使用的是https://github.com/panique/php-login – Schwesi 2014-10-29 11:57:27

1

首先我想知道您正在使用的框架? 出現此錯誤是因爲您尚未將事件傳遞給相應的視圖。 當您在此時渲染任何視圖時,必須傳遞要在視圖中使用的變量。根據您的陳述

$ this-> view-> dog_types = $ overview_model-> getEventTypes();

這意味着你節省事件dog_types變量,而您正在嘗試使用事件來訪問它。

+0

啊是啊好點。出於某種原因,我認爲CodeIgniter – 2014-10-29 11:54:43

+0

太棒了!謝謝!邁克米勒已經指出了。我只是將dog_types更改爲控制器中的事件,現在它可以工作。 – Schwesi 2014-10-29 11:55:34

+0

因爲我沒有足夠的聲望,所以我現在無法爲您的迴應投票,但我會盡快給您答覆!謝謝您的幫助! – Schwesi 2014-10-29 12:00:29