cakephp从组合框中检索值

时间:2014-01-23 13:30:53

标签: cakephp combobox

我使用以下代码填充一个带有数组值的组合框:

查看代码:

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

然而,当我选择一个值并单击提交并使用get,

在我的视图中检索此值

查看代码:

$price=$_GET['Price'];
echo $price;

这只会给我选择的索引。如何检索与索引关联的值?

2 个答案:

答案 0 :(得分:0)

如果那一行:

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

真的在你的控制器中你正在做一些根本错误的事情。

这也不对:

$price=$_GET['Price'];
echo $price;

另外,声明一个根本没用过的变量是什么意思?

echo $_GET['Price'];

同样也不是一个好主意,所有输出都应该通过Cakes h()函数传递,这是html htmlspecialchars()的快捷方式,但它比htmlspecialchars()更多。

您没有关注CakePHPs coding standards。这是正确的做法:

// controller
$this->set('prices', $this->Model->getPrices());

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

// Controller
// When you submitted the form you can get the data in the controller in the request object
debug($this->request->data['Model']['price']);

说真的,do the blog tutorial。这里有很多错误,我基本上必须为你写一个完整的教程。博客教程将教你基础知识。

答案 1 :(得分:0)

让我们说价格数组给出了结构:

array('1'=>'1000','2'=>'2000', etc etc);

并且视图位于行

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

然后很明显,你只会获得$_GET['Price'];

中的索引

现在,如果您想要$_GET['Price'];中的值,那么请更改您的价格数组

它应该是array('1000'=>'1000','2000'=>'2000', etc etc);,即值对

现在$_GET['Price'];会给你价值!