2011-09-17 128 views
0

我正在开发一个web应用程序,但遇到了一些小问题。我使用的是CodeIgniter。提交按钮,在CodeIgniter中执行PHP

我想要有2个按钮来执行2个不同的功能,它们可以对数据库做不同的事情。我在适当的Controller文件中创建了这些功能。

要使按钮执行各自的功能,最好的方法是什么?如果它需要JavaScript,我没有问题,只需要一些指针,因为我在这里有点困惑!

回答

1

如果他们正在对数据库中的记录进行更改,则应该将它们作为表单(或两个)的一部分来实现。只有使用简单的GET请求才能执行潜在的破坏性操作。

表单可以包含一个隐藏的输入类型来指定控制器中的内容。

HTML页面:

​​

控制器:

function myfunction() 
{ 
    // Your form would be submitted to this method... 
    // Get action from submitted form ('one' or 'two') 
    $action = $this->input->post('action'); 
    // Decide what to do 
    switch ($action) 
    { 
     case 'one': $this->my_first_action(); break; 
     case 'two': $this->my_second_action(); break; 
    } 
} 

function my_first_action() 
{ 
    // Do stuff... 
} 

这将是一次形式已提交重定向到另一页好的做法 - 使用 'Post/Redirect/Get' 模式。

+0

这绝对是我正在寻找的。现在的问题是,即使在我的控制器中定义的函数,并正确调用形式action =“”我得到一个404错误? –

+0

听起来好像你需要在表单的动作标签中输入完整的URL。使用URL助手(例如<?php echo site_url('controller/method')?>)或表单助手(<?php echo form_open('controller/method')?>)。 还要确保该方法设置为POST。 –