Rumah  >  Soal Jawab  >  teks badan

Bagaimanakah cara saya menggunakan fungsi save_percentage ini pada kod saya?

Saya sedang membuat projek tentang sistem pemarkahan dan saya tidak tahu bagaimana untuk mendekati perkara ini pada masa ini kerana saya masih belajar. Saya mendapat bahagian kod ini daripada internet, bukan milik saya.

$('#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')
                }
            })
        })

Saya rasa fungsi save_percentage sesuai untuk sqlite3 dan bukan yang saya gunakan. Saya mahu kod ini berfungsi dengan kod saya tetapi saya tidak tahu caranya. Saya menggunakan MySql dan menjalankan pelayan pada XAMPP. Ini ialah kod untuk 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;
}

My DBConnection.PHP:

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

P粉391955763P粉391955763428 hari yang lalu550

membalas semua(1)saya akan balas

  • P粉182218860

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

    Baiklah, saya boleh membetulkan kod saya dengan ini:

    <?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;
    }

    balas
    0
  • Batalbalas