codeigniter post值不可用于表单。在控制器逻辑中使用post值

时间:2013-04-17 05:54:55

标签: codeigniter post controller

我的控制器中有一些语法:

  $data = array(
   'submit' =>$this->input->post('submit'),
   'period' =>$this->input->post('period'),
   'buom' =>$this->input->post('buom'),
   'creditlimit' => $this->sales_model->get_creditlimit($this->input->post('customer'))
  );

当我将它传递给我的视图时,这是完美的,所有数组元素都按预期变为变量。

我想要做的是在if语句中使用$this->input->post('submit'),但$this->input->post('submit')不输出到控制器本身,只输出视图。

如果我只是执行以下操作:

echo $this->input->post('submit');

即使视图正常显示帖子,PHP也不返回任何值?

如何将此帖子值提供给我的控制器并对其执行逻辑。

我的总体目标是我的提交表单有三个不同的提交按钮。根据他们点击的提交按钮,我想为每个提交加载不同的视图。

如下所示:

if($this->input->post('submit')==="option1")
{$this->load->view('view1');}
else
{$this->load->view('view2');}

我做了些蠢事吗?

一如既往地感谢,问候......

2 个答案:

答案 0 :(得分:1)

不要使用提交,如果您有3个不同的提交值,则您在页面上运行了javascript。最好使用隐藏变量。 CodeIgniter有它的局限性,你需要操作表单助手(至少据我所知)。如果有一种我不知道的方法,我道歉;但是,根据我的经验,这不是可以/应该与PHP POST阵列一起使用的东西。

答案 1 :(得分:0)

<SCRIPT>
function submitFunction(i) {
   if (i==1) document.theForm.action=
      "http://www.company.com/cgi-bin/cgi1.cgi";
   if (i==2) document.theForm.action=
      "http://www.company.com/cgi-bin/cgi2.cgi";
   if (i==3) document.theForm.action=
      "http://www.company.com/cgi-bin/cgi3.cgi";
   document.theForm.submit()
   }
</SCRIPT>

<FORM NAME="theForm">
<INPUT TYPE="button" VALUE="Submit 1" onClick="submitFunction(1)">
<INPUT TYPE="button" VALUE="Submit 2" onClick="submitFunction(2)">
<INPUT TYPE="button" VALUE="Submit 3" onClick="submitFunction(3)">
</FORM>