如何在cakephp中获取组合框的所有值

时间:2014-11-26 07:00:13

标签: cakephp combobox

我想让组合框的所有值不仅仅是选定的值 例如:

  

$ price = array(' 100',' 200',' 300');
  echo $ this-> form-> create(' Price_form',array(' url' =>数组(' controller' =>' ;塞尔''动作' = GT;'售后')));
  echo $ this-> form-> input(' Price',array(' type' =>' select',' options' ; => $价));
  echo $ this-> form-> end();

在SaleController中:

  

$ post_data = $ this-> request-> data [' Price_form'] [' Price'];

如果是这样,我只获得选定的值。现在,我希望获得所有值,例如:100,200,300 ..
我的Cakephp版本是2.5.7 如果知道方法,请帮助我......!

3 个答案:

答案 0 :(得分:0)

这是不可能的。

你应该从Controller传递给视图,你将拥有它。

在控制器中:

$price=array(100,200,300);
$this->set('price',$price);

在你看来

echo $this->form->input('Price', array('type'=>'select','options'=>$price));

这是我看到的唯一方式

答案 1 :(得分:0)

在控制器中定义您的选项而不是查看,然后将它们直接从控制器而不是从发布的数据中

在控制器中

$prices = array(100, 200, 300);

    if ($this->request->is('post') || $this->request->is('put')) {
        $postedPrices = $this->request->data['Price_form']['Price']; // Selected Prices
        $allPrices = $prices; // All price options
    }

    $this->set(compact('prices')); // Set prices for view

答案 2 :(得分:0)

您可能会尝试在隐藏的输入字段中传递它: (没试过这个)

查看:

 $price = array('100','200','300');
 ...
 $allPricesAsString = implode(',',$price);
 $form->input('allPrices', array('value'=>$allPricesAsString,'type' => 'hidden')); 

控制器:

 $allPrices = explode(',',$this->request->data['Price_form']['allPrices']);

但实际上我不明白为什么要在视图中设置数据。 通常你应该像之前说的那样在控制器中这样做。