簡體   English   中英

表單需要在codeigniter中將數據發布到控制器

[英]Form needs to post data to a controller in codeigniter

我有一張表格,

<form>
<input id="amount"  type="text" placeholder="Give amount"  name="myamount"/>
<button class="btn btn-lg" type="submit" id="btn1" >FirstBTN</button> 
<button class="btn btn-lg" type="submit" id="btn2">SecondBTN</button>
</form>

哪個需要將數據發布到控制器內的函數。 我正在嘗試制作兩個按鈕,將數據發布到兩個不同的控制器功能。 這是我在html文件(view)中編寫的jquery代碼:

<script type="text/javascript">
$('#btn1').click(function() { 
        $.ajax({
            url: 'helloworld/firstmoney',
            type: 'POST',
            data: {'submit' : true ,myamount: $("#amount").val()},
            success: function (result) {

            }
        });  
 });

</script>

<script type="text/javascript">
    $('#btn2').click(function() { 
            $.ajax({
                url: 'helloworld/secondmoney',
                type: 'POST',
               data: {'submit' : true ,myamount: $("#amount").val()},
                success: function (result) {

                }
            });  

    });

    </script>

這是控制器,但我的控制器中沒有任何值。

public function firstmoney(){
        $this->load->helper('form');

        $Money = $this->input->post("myamount");
        $data =  array(
        'Money' => $Money
         );
        $this->load->view("page1", $data);

    }

public function secondmoney(){
            $this->load->helper('form');

            $Money = $this->input->post("myamount");
            $data =  array(
            'Money' => $Money
             );
            $this->load->view("page2", $data);

        }

我的控制器名稱是helloworld,我需要以$ money分配值,但我不能讓它工作。 我是初學程序員,所以請告訴我應該遵循的步驟。

首先,你的AJAX看起來應該是這樣的。

    $('#btn2').click(function() { 
        $.ajax({
            url: 'helloworld/secondmoney',
            method: 'POST',//not type
            data: { myamount: $("#amount").val() }//no need for submit variable (although you can use it) since this will be submitted on click; no quotes over variables
        })
          .done(function(result)) {
              //do your stuff on response
          });
    });

第二:不需要ajax,你應該使用經典形式和post方法,因為你在控制器/方法中進行重定向,其中數據被發布到。 AJAX需要JSON格式化響應,在這種情況下不是這樣。 因此更改視圖以具有方法和動作的形式,更改控制器/方法以將JSON字符串返回到AJAX。

 var base_url= '<?php echo base_url() ?>';


 url: base_url+'helloworld /firstmoney',

你可以嘗試另一種方式來做到這一點

試試下面的代碼

形成

<form action="" method="post" id="myform">
<input id="amount"  type="text" placeholder="Give amount"  name="myamount"/>
<button class="btn btn-lg" type="submit" id="btn1" >FirstBTN</button> 
<button class="btn btn-lg" type="submit" id="btn2">SecondBTN</button>
</form>

然后,您可以添加jquery以更改提交按鈕單擊時的表單操作,如下所示

<script type="text/javascript">

$('#btn1').click(function() { 
        $('#myform').attr('action', 'Your domain/Your controller/firstmoney'); 
 });

$('#btn2').click(function() { 
        $('#myform').attr('action', 'Your domain/Your controller/secondmoney'); 
 });

</script>

現在你的表單會調用firstmoney(),如果你單擊#btn1,如果你調用#btn2它會調用secondmoney()

您可以使用獲取表單數據

$this->input->post('myamount');

如果您只想打印$ _POST數據,請將此代碼應用於btn1。

$(document).ready(function(){
    $('#btn1').click(function() { 
    event.preventDefault();

        $.ajax({ 

            url: "<?php echo base_url(); ?>" + "helloworld/firstmoney",         
            type: 'POST',
            data: {'submit' : true ,myamount: $("#amount").val()},
            success: function (result) { 
                $("body").html(result);
            }
        });  
    });
});

在你的helloworld控制器中

public function firstmoney(){

    $Money = $this->input->post("myamount");
    $data =  array(
    'Money' => $Money
     );
    $data = $this->load->view("page1", $data, TRUE); //it will return that page and save it in $data 
}

在page1.php視圖中編寫以下代碼

<?php
echo $Money;
?>
<script type="text/javascript">
$('#btn1').click(function() { 
        $.ajax({
            url: 'helloworld/firstmoney',
            type: 'POST',
            data: {'submit' : true ,myamount: $("#myamount").val()},
            success: function (result) {

            }
        });  
 });

將id和name值保存為上面輸入標記中的myamount,並更改jquery代碼

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM