搜尋

首頁  >  問答  >  主體

如何將此 save_percentage 函數套用到我的程式碼?

我目前正在製作一個有關評分系統的項目,我目前不知道如何處理這個問題,因為我仍在學習。這部分程式碼是我從網路上取得的,不是我自己的。

$('#percentage-form').submit(function(e){
            e.preventDefault();
            $('.pop_msg').remove()
            var _this = $(this)
            var total = $('#total').text()
                total = total.replace(/\%/gi,'')
                console.log(total)
            if(parseFloat(total) !== 100)
            {
                alert("Total Percentage must be 100%");
                return false;
            }
            var _el = $('<div>')
                _el.addClass('pop_msg')
            $('#uni_modal button').attr('disabled',true)
            $('#uni_modal button[type="submit"]').text('submitting form...')
            $.ajax({
                url:'./Actions.php?a=save_percentage',
                method:'POST',
                data:$(this).serialize(),
                dataType:'JSON',
                error:err=>{
                    console.log(err)
                    _el.addClass('alert alert-danger')
                    _el.text("An error occurred.")
                    _this.prepend(_el)
                    _el.show('slow')
                     $('#uni_modal button').attr('disabled',false)
                     $('#uni_modal button[type="submit"]').text('Save')
                },
                success:function(resp){
                    if(resp.status == 'success'){
                        _el.addClass('alert alert-success')
                        $('#uni_modal').on('hide.bs.modal',function(){
                            location.reload()
                        })
                    }else{
                        _el.addClass('alert alert-danger')
                    }
                    _el.text(resp.msg)

                    _el.hide()
                    _this.prepend(_el)
                    _el.show('slow')
                     $('#uni_modal button').attr('disabled',false)
                     $('#uni_modal button[type="submit"]').text('Save')
                }
            })
        })

我認為函數 save_percentage 適合 sqlite3 而不是我正在使用的。我希望這個程式碼可以與我的程式碼一起使用,但我不知道如何。我正在使用 MySql 並在 XAMPP 上運行伺服器。 這是 Actions.php 的程式碼

<?php 

Class Actions{
    function save_percentage(){
        extract($_POST);
        $data = "";
        foreach($component_id as $k => $v){
            if(!empty($data)) $data .= ", ";
            $data .= "('$id','{$v}','{$percentage[$k]}')";
        }
        if(!empty($data))
        $this->query("DELETE FROM `component_subject_percentage` where `subject_id` = '{$id}'");
        $sql = "INSERT INTO `component_subject_percentage` (`subject_id`,`component_id`,`percentage`)VALUES {$data}";
        $insert = $this->query($sql);
        if($insert){
            $resp['status'] ='success';
            $resp['msg'] = "Data successfully saved";
        }else{
            $resp['status'] ='failed';
            $resp['msg'] = "Data fails to save. Error: ". $this->lastErrorMsg();
            $resp['sql'] = $sql;
        }
        return json_encode($resp);
    }
}
$a = isset($_GET['a']) ?$_GET['a'] : '';
$action = new Actions();
switch($a){

    case 'save_percentage':
        echo $action->save_percentage();
    break;
    default:
    // default action here
    break;
}

我的 DBConnection.PHP:

<?php
$con=mysqli_connect("localhost", "root", "", "resultgrading");
if(mysqli_connect_errno()){
    echo "Connection Fail".mysqli_connect_error(); 
}

P粉391955763P粉391955763444 天前565

全部回覆(1)我來回復

  • P粉182218860

    P粉1822188602023-09-12 13:36:10

    好的,我可以用這個修復我的程式碼:

    <?php 
    
    Class Actions extends mysqli{
        public $sql;
        function __construct(){
            $this->sql = new mysqli("localhost", "root", "", "resultgrading");
        }
        function save_percentage(){
            extract($_POST);
            $data = "";
            foreach($component_id as $k => $v){
                if(!empty($data)) $data .= ", ";
                $data .= "('$id','{$v}','{$percentage[$k]}')";
            }
            if(!empty($data))
            $this->sql->query("DELETE FROM `component_subject_percentage` where `subject_id` = '{$id}'");
            $mb = "INSERT INTO `component_subject_percentage` (`subject_id`,`component_id`,`percentage`)VALUES {$data}";
            $insert = $this->sql->query($mb);
            if($insert){
                $resp['status'] ='success';
                $resp['msg'] = "Data successfully saved";
            }else{
                $resp['status'] ='failed';
                $resp['msg'] = "Data fails to save. Error: ". $this->sql->lastErrorMsg();
                $resp['sql'] = $sql;
            }
            return json_encode($resp);
        }
    }
    $a = isset($_GET['a']) ?$_GET['a'] : '';
    $action = new Actions();
    switch($a){
    
        case 'save_percentage':
            echo $action->save_percentage();
        break;
        default:
        // default action here
        break;
    }

    回覆
    0
  • 取消回覆