0

我有多个提交按钮,例如预览和提交。如果我单击预览执行此操作或单击提交执行此操作,我如何对其进行编码。

我目前有以下设置:

if (HTTP_Request::POST == $this->request->method()):
   try 
   {
      $form->values($this->request->post());
   }
   catch (ORM_Validation_Exception $ex)
   {
      $errors = $ex->errors('models'); 
   }    
endif;

如果我单击预览或提交按钮,我不知道如何编写代码来告诉它。

查看页面上的按钮:

echo Form::button('preview', 'Preview', array('type' => 'submit', 'id' => 'preview-button'));
echo Form::submit('submit', 'Submit', array('id' => 'submit-button'));
4

3 回答 3

0

做一个var_dump($this->request->post());。应该有一个属性“submit => preview”或“submit => submit”,具体取决于您单击的按钮。

于 2013-04-29T01:46:00.857 回答
0

小花

在 Kohana 中,表单助手有 button 和 submit 方法,它们都将接受作为第一个参数 name 属性和作为第二个 value 属性(对于提交按钮)或 value 属性必须显式设置(对于按钮标签)作为第三个参数(查看文档)。您分配给 name 属性的值将显示为 $_POST 数组中的键,您分配给 value 属性的值将显示为 $_POST 数组中的值(或 Kohana 的 $this->request->post()与 $_POST 相同)。

http://kohanaframework.org/3.2/guide/api/Form#button http://kohanaframework.org/3.2/guide/api/Form#input

所以:

Form::submit('submit', 'Submit', array('id' => 'submit-button'));

将在您的 $this->request->post() 方法中显示为:

$this->request->post() // contains array('submit' => 'Submit')

PHP解释:

<input name="something" type="submit" value="Submit!" />

它将在您的 $_POST 数组中显示为:

$_POST['something'] // contains "Submit!"
于 2013-04-29T07:42:12.567 回答
0

在您的控制器中:

$post = $this->request->post();
if (isset($post['preview']))
{
   // Stuff for preview
}
if (isset($post['submit']))
{
   // Stuff for submit
}
于 2013-04-29T12:57:50.827 回答