如何从下拉列表中选择并提交语法

时间:2013-09-20 14:37:23

标签: cakephp

我对cakephp中使用下拉列表框的概念有点新。如果用户选择了项目并提交了某些内容。我可以将该项目与所选项目相关联。 在我的下面的代码中:模块部分应该在正确的模块中提交(添加)(从列表框中选择)。有人可以指出语法。

控制器代码。

 $fields = array('id','moduleName');
   $modules = $this->Module->find('list',array('fields'=>$fields));
  $this->set(compact('modules'));

   if($this->request->is('post'))


{
    $mDetails = $this->Session->read('mDetails');
    $this->Modulepart->set('id', $mDetails['Modulepart']['id']);
    if($this->Modulepart->save($this->request->data)){
$this->Session->setFlash('Your new Module part has been successfully added!');
$this->redirect(array('controller' => 'modules','action'=>'modules_home'));

                }

1 个答案:

答案 0 :(得分:0)

在您的视图(ModulePart / add.ctp)中输入以下内容:

$this->Form->create('ModulePart');
$this->Form->input('ModulePart.module_id');
$this->Form->end('Add');

自动魔术功能将为你工作,只是声明“模块”变量:使用list函数获取的内容(设置为只获取'id'和'module_name'字段)将填充表单的选择。

请注意CakePHP约定:您的数据库字段应命名为'module_name',而不是'moduleName'。关于你的模型,你必须使用这个sintax

$this->ModulePart->save($this->request->data);

而不是

$this->Modulepart->save($this->request->data);

请记住:型号名称是Singular和Camel Cased。控制器是Plurals和Camel Cased。

还有一件事< =声音太多史蒂夫式,LOL =>是关于代码:

 $fields = array('id','moduleName');
 $modules = $this->Module->find('list',array('fields'=>$fields));
 $this->set(compact('modules'));
由于您的重定向,

应该在请求之后移动 - >是('post')检查:如果添加ModulePart,则无需获取该数据。毕竟还有一个重定向到modules_home ......

快乐编码并阅读CookBook;)