recherche

Maison  >  Questions et réponses  >  le corps du texte

Comment appliquer cette fonction save_percentage à mon code ?

Je travaille actuellement sur un projet concernant un système de notation et je ne sais pas comment aborder cela pour le moment car j'apprends encore. J'ai obtenu cette partie du code sur Internet et ce n'est pas la mienne.

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

Je pense que la fonction save_percentage convient à sqlite3 et non à ce que j'utilise. Je veux que ce code fonctionne avec mon code mais je ne sais pas comment. J'utilise MySql et j'exécute le serveur sur XAMPP. C'est le code pour 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;
}

Mon DBConnection.PHP :

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

P粉391955763P粉391955763444 Il y a quelques jours566

répondre à tous(1)je répondrai

  • P粉182218860

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

    D'accord, je peux corriger mon code avec ceci :

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

    répondre
    0
  • Annulerrépondre