笨通过点击按钮来改变形式的行动(Codeigniter change form action by

2019-09-19 01:46发布

我有2个在我的形式提交按钮,我试图让每一个进入不同的控制器的方法。 我试图避免不了使用的多种形式。

我目前使用

<button type="submit" onclick="javascript: form.action='restore'">Restore</button>
<button type="submit" onclick="javascript: form.action='delete'">Delete</button>

......这些作品,但我不知道这是最好的方法。 有什么想法吗?

Answer 1:

通常我想通过给按钮/输入标记一个name属性来处理多次提交。 这样你可以通过按钮提交检查提交并在同一个控制器调用一个函数/动作。 例如:

<form id="your_form" action="your_controller/process" method="post">
<input type="submit" name="restore" id="restore" value="Restore" />
<input type="submit" name="delete"  id="delete" value="Delete" />
</form>

然后在你的控制器,将有一个功能叫做“进程”这样做:

function process(){
  if(isset($_POST["restore"])) {
    //do your restore code
  }

  if(isset($_POST["delete"])){
    //do your delete code
  }   
}

希望这将有助于。



Answer 2:

最好做的是使用JavaScript,所有它正在呈现页面之后完成之后。 这是一个替代的解决方案(抱歉,这是jQuery的我不是在香草JS非常好)。

视图:

<div id="submit-buttons" action="<?php echo site_url('controller/postmethod1'); ?>​"​​​​​>Submit 1</div>

<div id="submit-buttons" action="<?php echo site_url('controller/postmethod2'); ?>">Submit 2</div>​

JS:

​$(function(){
    $('.submit-buttons').click(function(){
        $('form').attr('action',$(this).attr('action')).submit();
        return false;
    });

});​

因此,被点击按钮后时,将更新从提交按钮的action属性的表单操作参数,并在那之后提交表单的权利。

PS:我没有测试它,但它应该工作。



Answer 3:

那这个呢?

<?php echo form_open('controller/method',array('id'=>'my_form')); ?>
<!--Form-->
<input type="submit" value="Submit" />
<?php echo form_close();?>

希望能帮助到你



文章来源: Codeigniter change form action by clicking buttons