這些都是實習時邊學邊寫,一定不是最好的、也一定還有可以修改的地方,敬請指教 (◕ܫ◕)
那我們就延續上一篇
(CSS 的部分這裡先不多介紹)
那這邊就介紹幾點我覺得比較重點的部分!
(因保密條約,資料有已經過修改)
② 是用一個 form 去包,再用一個 div 包全部
<!--連動到 QuerController 的 Quers() Action-->
<div class="form00">
    <form class="form_01" method="post" name="form" action="@Url.Action("Quers")" 
            enctype="multipart/form-data" onsubmit="return check()">
    <!--後面會介紹這裡的東西-->
    </form>
</div>    
請選擇系統分類 ➡ 下拉選單,到API 拉資料,使用到 AJAZ、JSON
請選擇問題分類 ➡ 選擇系統分類後,從資料庫抓相對應的問題分類資料(如下圖)
畫面:
程式碼:
<!--Views/Quer/Quer-->
<div>
    <form>
    <!--系統分類下拉選單,與 change_system 連動-->
        <select id="option_system" 
                class="mdb-select md-form btn btn-primary dropdown-toggle form-control" 
                onchange="change_system(this.value)" name="option_system">
            <option value="" disabled selected>請選擇系統分類</option>
        </select>
        <!--問題分類下拉選單,與 change_problem 連動-->
        <select id="option_problem" 
                class="mdb-select md-form btn btn-primary dropdown-toggle form-control" 
                onchange="change_problem(this.value)" name="option_problem">
            <option value="" disabled selected>請選擇問題分類</option>
        </select>
    </form>
</div>
<script>
$(document).ready(function () {
    function myfunction() {
        var apiurl = "http://localhost:***/api/api";
        //系統分類下拉選單的資料來源
        //DAY 17、18 有介紹 AJAX 跟 JSON
        $.ajax({
            url: apiurl,
            type: "GET",
            dataType: "json",
            success: function (JData) {
                var NumOfJData = JData.length;                 
                for (var i = 0; i < NumOfJData; i++) {
                    $("#option_system").append('<option value = "' + JData[i]["APPL_ID"] + '">' + JData[i]["APPL_NAME"] + '</option>');
                }
            },                
            error: function (XMLHttpRequest, textStatus, errorThrown) {
                alert(XMLHttpRequest.status);
                alert(XMLHttpRequest.readyState);
                alert(textStatus);
            }
        });
    }
    //Call function
    myfunction();
});
//與系統分類連動
function change_system(val) {
    $.ajax({
        //把已選擇的系統分類回傳給 QuerController 的 GetSystData Action
        url: '@Url.Action("GetSystData", "Quer")',
        type: "POST",
        data: { id: val },
        success: function (data) {
            $("#option_problem").html("");
            $("#option_problem").append('<option value = ""disabled selected>' + "請選擇問題分類" + '</option>');
            var NumOfJData = data.length;
            for (var i = 0; i < NumOfJData; i++) {
                $("#option_problem").append('<option value = "' + data[i]["CLAS_NO"] + '">' + data[i]["CLAS_NAME"] + '</option>');
            var system = document.getElementById('option_system').value;
            console.log(system);
        },
        error: function (XMLHttpRequest, textStatus, errorThrown) {
            alert(XMLHttpRequest.status);
            alert(XMLHttpRequest.readyState);
            alert(textStatus);
        }
    });
//與問題分類連動
function change_problem() {
    var problem = document.getElementById('option_problem').value;
    console.log(problem);
}
</script>
//QuerController
[HttpPost]
    public ActionResult Quers(FormCollection post, 
                            IEnumerable<HttpPostedFileBase> file)
    {
        //自動生成案件代號
        //先獲得上次的案號,再 +1
        var t = db.T_CASE_BASE.Max(m => m.CASE_NO);
        string s = (Convert.ToInt32(t) + 1).ToString();
        string CASE_NO = s.PadLeft(4, '0');
        //得到前端資料
        string SYST_NO = post["option_system"];
        string CLAS_NO = post["option_problem"];
         //輸 SQL 語法,將資料傳回資料庫
         //有省略一些程式碼,只寫出介紹的部分,應該會比較好理解!
        string RawSQL1 = "INSERT INTO T_CASE_BASE 
            (CASE_NO,SYST_NO,CLAS_NO) " +
                            "VALUES('" +
                            CASE_NO + "','" +
                            SYST_NO + "','" +
                            CLAS_NO + "'); ";
        //Command SQL 程式碼
        db.Database.ExecuteSqlCommand(RawSQL1);
        //儲存資料
        db.SaveChanges();
    }
好的!那今天先分享到這邊,明天來分享檔案上傳
謝謝小葵大大一步一步的操作教學
請問在QuerController,
string RawSQL1 = "INSERT INTO T_CASE_BASE
(CASE_NO,SYST_NO,CLAS_NO) " +
"VALUES('" +
CASE_NO + "','" +
SYST_NO + "','" +
CLAS_NO + "'); ";
CLAS_NO是T_CASE_BASE的欄位嗎,在第七天課程好像沒有建到這個欄位耶
他是什麼型別呢
猜測為varchar(10),因帶入參數時並無轉型。