我目前正在制作一个有关评分系统的项目,我目前不知道如何处理这个问题,因为我仍在学习。这部分代码是我从互联网上获取的,不是我自己的。
$('#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();
} Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
好的,我可以用这个修复我的代码:
<?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; }