使用2个按钮

时间:2016-01-14 14:57:27

标签: javascript forms codeigniter model-view-controller controller

我有一个<form>,它当前将输入字段数据发送到控制器中的1个函数。看起来像这样。

<?php echo form_open('moneyexchange/invest_first_page');  ?>
  <input  type="text" placeholder="Amount in &euro;"  name="writtenamount"/>
    <button class="btn btn-lg" type="submit" >Invest</button> 
    <button class="btn btn-lg" type="submit" >Borrow</button>
<?php echo form_close();?> 

问题是我需要投资按钮去money_first_page函数里面的货币兑换控制器,而借用按钮去同一个控制器里面的另一个函数叫做borrow_first_page。我需要使用一个输入字段并且它是必须的,所以不能使用两个输入字段然后它们转到它们被重定向到两个不同页面的函数,所以有没有办法让这个表单发布输入值点击不同的按钮时,两个不同的控制器。

只是为了获取额外的信息,我在控制器中发布了按钮所指示的功能。

    public function invest_first_page(){
$this->load->helper('form');
         $this->load->library('form_validation');
        $this->load->view('header');
        $userProvidedAmount = $this->input->post("writtenamount");
        $data =  array(
        'userProvidedAmount' => $userProvidedAmount
         );
        $this->load->view("invest_firstpage", $data);
        $this->load->view('footer');
                }

 public function borrow_first_page(){
        }

我可以使用JavaScript吗?

4 个答案:

答案 0 :(得分:2)

以下示例

    <html>
<head>
    <script src="https://code.jquery.com/jquery-1.9.1.min.js"></script>
    <script>
        $( document ).ready(function() {
            $('#yourbuttonid').click(function() { 
                $.ajax({
                     url: 'moneyexchange/invest_first_page',
                     type: 'POST',
                     data: { writtenamount: $("#amount").val()},
                     success: function (result) {
                       // do stuff
                     }
                });
            });
        });
    </script>
</head>
<body>
    <?php echo form_open('moneyexchange/invest_first_page');  ?>
        <input  type="text" placeholder="Amount in &euro;"  name="writtenamount"/>
        <button id="yourbuttonid" class="btn btn-lg" type="submit" >Invest</button> 
        <button class="btn btn-lg" type="submit" >Borrow</button>
    <?php echo form_close();?>
</body>
</html>

答案 1 :(得分:1)

Paul Rolas代码很完美,但有两件事你需要考虑,因为你没有在你的占位符中使用价值所以你的数据应该是这样的

data: { writtenamount: $("#amount").data('value')},

最有可能使用方法而不是类型

method: 'POST',

希望这有帮助。

答案 2 :(得分:0)

您可以使用表单的OnSubmit事件来执行此操作。 (look here) 您可以简单地捕获事件并路由到所需的控制器。

答案 3 :(得分:0)

你可以做的事情很多。

1)为您的按钮添加名称属性

您说您仅限于一个输入字段,但您忘记了单击的按钮也可用于传递数据。然后在您的PHP脚本中,您将检查单击了哪个按钮,然后根据它执行您需要的任何功能。

2)使用Ajax发送您的postdata

您可以使用javascript(或最好是jQuery)来处理发布请求。您为两个按钮指定了不同的ID标记,因此<button id="button1"><button id="button2">。有了这些信息,您可以使用javascript查找单击的按钮,并向正确的php函数发出ajax请求。