首页 > 解决方案 > Codeigniter - 根据年份获取表中列的总和,并应将其显示在输入标签中

问题描述

我有 Codeigniter 项目,我需要根据下拉列表中提到的年份获得预算利润总和。

在此处输入图像描述

我已经编写了如下所述的代码。但是,当我选择 2021 选项时,它不起作用。
你能告诉我下面的编码错误吗?

看法

    <form>
              <div class="box-body">
               
                <div class="col-md-6">
                  <div class="form-group">
                    <label for="example">Select Year</label>
                    <select class="form-control" name="year" id="SelectOption">
                      <option value="">Select</option>
                      <option value="2015">2015</option>
                      <option value="2016">2016</option>
                      <option value="2017">2017</option>
                      <option value="2018">2018</option>
                      <option value="2019">2019</option>
                      <option value="2020">2020</option>
                      <option value="2021">2021</option>
                      
                        
                    </select>
                  </div>
                </div>
              </div>
              

 <div class="col-md-6">
 <div class="form-group">
 <label for="example">Profit</label>
 <input type="text" id="profitdiv" name="txtname" class="form-control" readonly>
 </div>
 </div>
              
 </form>


<script>

document.getElementById('SelectOption').addEventListener('change', function() 
{var val = $( "#SelectOption" ).val();
    
  console.log(val)
  if(val === '2021') {
    $.ajax({
                type: "POST",
                url : "<?php echo base_url(); ?>Reports/get_profit",
                data:{val:val},
                success: function(data){
                    $('#profitdiv').html(data);
                }
            });
    }
}
</script>

控制器

public function get_profit()
    {
        $this->load->model('Reports_model');
        $data=$this->Reports_model->select_profit();
        if($data!=='')
        {
            $this->session->set_flashdata('success', "Profit Show Succesfully"); 
        }else{
         $this->session->set_flashdata('error', "Sorry, Profit Showing Failed.");
        }
        redirect($_SERVER['HTTP_REFERER']);
        

    }

模型

function select_profit()
    {
      $this->db->select_sum("budget_tbl.surplus ");
       $this->db->from("budget_tbl");
       $this->db->like(‘surplus’,'2021-','after');
       $qry=$this->db->get();

    }

标签: phphtmlajaxcodeigniter

解决方案


完整代码

HTML

<form >
    <div class="box-body" >

        <div class="col-md-6" >
            <div class="form-group" >
                <label for="example" >Select Year</label >
                <select class="form-control" name="year" id="Year" >
                    <option value="" >Select</option >
                    <option value="2015" >2015</option >
                    <option value="2016" >2016</option >
                    <option value="2017" >2017</option >
                    <option value="2018" >2018</option >
                    <option value="2019" >2019</option >
                    <option value="2020" >2020</option >
                    <option value="2021" >2021</option >
                 </select >
            </div >
        </div >
    </div >


    <div class="col-md-6" >
        <div class="form-group" >
            <label for="example" >Profit</label >
            <input type="text" id="profitdiv" name="txtname" class="form-control" readonly >
        </div >
    </div >

</form >


<script >

    $("#Year").change(function () {
        var Year = $(this).val();

        $.ajax({
            type: "POST",
            url: "<?php echo base_url (); ?>index/get_profit",
            data: {Year: Year},
            success: function (data) {
                $('#profitdiv').html(data);
            }
        });

    })


</script >

控制器

public function get_profit ()
        {
            $this -> load -> model ( 'Reports_model' );
            $year = $this -> input -> post ( "val" );
            $data = $this -> Reports_model -> select_profit ( $year );

            if (!empty( $data )) {
                echo "Profit Show Succesfully";
            } else {
                echo "Sorry, Profit Showing Failed";
            }

        }

模型

function select_profit($year)
    {
      $this->db->select_sum("budget_tbl.surplus ");
       $this->db->from("budget_tbl");
       $this->db->where(‘surplus >=’,$year.'-01-01 00:00:00');
       $qry=$this->db->get();
       return $qry -> result();    
    }

推荐阅读