我目前正在製作一個有關評分系統的項目,我目前不知道如何處理這個問題,因為我仍在學習。這部分程式碼是我從網路上取得的,不是我自己的。
$('#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粉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; }