close

喔喔~~~要來搞懂MVC架構了,先從加法這個小練習下手但對我來說還是難T T

首先呢

先建置MVC檔案

Model 模型 > add_calculator_model.php

Controller 控制器 > add_calculator.php

view 檢視 > add_calculator_view.php

add_calculator.js

 

1. 我先從我認識的View開始著手,建立加法的頁面

<!DOCTYPE html>
<html>
<head>
<script src="packages/jquery/2.1.1/jquery.min.js"></script>
<script src="js/add_calculator.js"></script>
<meta charset="UTF-8">
<title>加法</title>
</head>
<body>
    <form>
    兩數相加 <input type="text" id="addition_sum">
    <br></br>

    請輸入第一個數字:
    <input type="text" id="addition_num1" name="addition_num1">
    <br></br>

    請輸入第二個數字:
    <input type="text" id="addition_num2" name="addition_num2">
    <br></br>

    <input type="button" value="Submit" id="addition_click">

</form>
</body>
</html>

 

2. add_calculator.js (ajax 為js 跟controller 溝通橋梁)

$(document).ready(function() {
$('#addition_click').on('click', function () {
    var addition_num1 = $('#addition_num1').val();
    var addition_num2 = $('#addition_num2').val();

    get_sum_to_view(addition_num1, addition_num2);
});

//點擊取得使用者輸入的值並後續動作

function get_sum_to_view(addition_num1, addition_num2) {
    $.ajax({
        url: 'add_calculator/get_sum',
        type: 'POST',
        dataType: 'json',
        async: 'true',
        data: {
           add_num1: addition_num1,
           add_num2: addition_num2
        },
        success: function (sum) {
          $('#addition_sum').val(sum);
       }//確定成功,取得值並在VIEW顯示
    });
}

 

});

 

3. 再來編輯Controller 控制器 

<?php if(!defined('BASEPATH')) exit('No direct script access allowed');

class Add_calculator extends MY_Controller {
    public function __construct() {
        parent::__construct();
    }

    public function index(){
        $this->load->view('add_calculator_view');
    }

    public function get_sum() {
        $num_all = $this->input->post(); //接收ajax
        $this->load->model('add_calculator_model'); //叫Model做事
        $add_sum = $this->add_calculator_model->add_sum($num_all);//叫Model的add_sum function做完事,取得$add_sun

        echo json_encode($add_sum);//回傳給ajax  $add_sum
    }

}

備註:開啟application/config/routes.php檔案,$route['default_controller'] = "add_calculator"; 可以設定預設的控制器

注意:class 命名字首要大寫

 

4. 最後編輯Model 

<?php if (!defined('BASEPATH')) exit('No direct script access allowed');

class Add_calculator_model extends MY_Model {

    public function __construct() {
        parent::__construct();
    }

    public function add_sum($num_all) {
        $add_sum = $num_all['add_num1'] + $num_all['add_num2'];

        return $add_sum;
    }

}

 

 

arrow
arrow
    全站熱搜

    Kaikai凱開 發表在 痞客邦 留言(0) 人氣()