如何使用cakephp获取下拉列表中的选定值?

时间:2014-03-12 07:12:15

标签: cakephp

我的代码如下所示:

public function makeEntryTime($first = '') {
        $j = 0;
        if (empty($first)) {
            $j = 1;
        } else {
            $entry[$j] = $first;
            $j++;
        }

        for ($i = $j; $i <= 12; $i++) {
            $entry[$i . ' am'] = $i . ' am';
        }
        for ($i = $j; $i <= 12; $i++) {
            $entry[$i . ' pm'] = $i . ' pm';
        }
        return $entry;
    }

以下是下拉列表代码:

$this->Form->select('ClubOpenDay.0.open_time', $this->makeEntryTime(), array("empty" => false, 'class' => 'input-medium'));

我的问题是我得到的价值就像上午11点,上午12点。但是我想在我从数据库上午11点或上午12点获得价值时将其选中。任何想法我该怎么做?

2 个答案:

答案 0 :(得分:0)

请试试这个:

<?php echo $this->Form->select('ClubOpenDay.0.open_time',$this->makeEntryTime(),array("empty" => false,'value' => $value_selected,'class' => 'input-medium')); ?>

“$ value_selected”是输入范围内的任何值。

即$ this-&gt; makeEntryTime()返回。

由于

答案 1 :(得分:0)

我认为您的方法在视野中,您不应该这样做。从你的函数中删除public并删除$ this来调用你的函数。

尝试将您的方法至少保留在控制器中。如果你想让你的方法在视野中,那就是这样。

function makeEntryTime($first = '') {
        $j = 0;
        if (empty($first)) {
            $j = 1;
        } else {
            $entry[$j] = $first;
            $j++;
        }

        for ($i = $j; $i <= 12; $i++) {
            $entry[$i . ' am'] = $i . ' am';
        }
        for ($i = $j; $i <= 12; $i++) {
            $entry[$i . ' pm'] = $i . ' pm';
        }
        return $entry;
    }        

    echo $this->Form->select('selete_id', makeEntryTime(), array("empty" => false, 'class' => 'input-medium'));

但是如果你想让它成为MVC。

//controller
       function makeEntryTime($first = '') {
            $j = 0;
            if (empty($first)) {
                $j = 1;
            } else {
                $entry[$j] = $first;
                $j++;
            }

            for ($i = $j; $i <= 12; $i++) {
                $entry[$i . ' am'] = $i . ' am';
            }
            for ($i = $j; $i <= 12; $i++) {
                $entry[$i . ' pm'] = $i . ' pm';
            }
            return $entry;
        } 

//page function - for examlpe add() method
       public function add(){
            $this->set('times', $this->makeEntryTime());
       }

//view of add method       
        echo $this->Form->select('time_id', $times, array("empty" => false, 'class' => 'input-medium'));