如何从输入类型号和数据库(获取)值中减去一个值?减去后,在更新查询时更新当前余额

How to subtract a value from input type number and database (fetched) value? After subtracting, update the current balance on update query

这里是初学者。有没有办法可以从数据库中减去一个值并输入类型号?减去后,我点击“插入提交按钮”后,当前点数将更新。我提供了更多解释的截图。先感谢您。此外,我更新了更新查询。但是没有发生任何减法。

观看次数:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/js/bootstrap.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>

<center> <div style="margin-top:100px;">
<form action="<?php echo base_url();?>welcome/auth/form_validation" method="post">

  <input type="number" placeholder="Enter Amount" name="bet" class="form-control" id="box" required>


  <!-- change id's name to betAmount -->
  <p>CURRENT WALLET: <a style="color:blue;"><?php echo $_SESSION['currentPoints']?></a></p>

  <p class="remaining">REMAINING BALANCEE:

    <a class="p-1" id="betAmountResult"></a>
  </p>

 <input type="submit" name="insert" id="insert" value="Insert">

 

</form>
</div>
<script>


$(function() {
  $("#box").on("input",function() {

    const betAmount = $("#box").val(),
          walletAmount = <?php echo $_SESSION['currentPoints']?>, // your session data goes here 
          remainingAmount = walletAmount - betAmount,
          enough = remainingAmount >= 0;
          
    $("#betAmountResult").text(enough ? remainingAmount : 'Error, not enough balance');
    $("#insert").prop("disabled",!enough); // disable
    
    // $("#insert").toggle(enough); // remove
  })
});
</script>

控制器:

<?php

class Auth extends MX_Controller
{

 public function form_validation()
    {
        $this->form_validation->set_rules('bet','bet', 'required|numeric');
        if($this->form_validation->run())
    {
        $data = array(

            'bet' =>$this->input->post('bet'),
        );
    $this->db->insert('bettaya',$data);  
        $this->load->view('bet');
    }
}
    public function inserted()
    {
        $this->index();
        $this->session->set_flashdata("success","Your account has been registered. You can log in now");
        
    }



  function updateData($id) {
        $data = array (
            'bet' => $this->input->post('bet'),
        );
        $this->db->where('id', $id);
        $this->db->update('users', $data);
    }
    
    }

这是您可以对 Controller 文件中的 updateData() 函数进行的编辑。需要调用它,您可以通过编辑表单标签来调用它:

<form action="<?php echo base_url();?>welcome/auth/updateData" method="post">

您如何传递您的用户 ID ($id)? (我在你的例子中默认了 user_id = 49)。

public function updateData($id=49) {
    
    // load Model
    $this->load->model("Auth_model);


    // get currentPoints from the database ...
    $query          = $this->Auth_model->get_current_points($id); // user id
    $current_points = $query->row(0, 'currentPoints'); 

    $data = array (
        'bet' => $this->input->post('bet'),
    );

    $data['remainingBalance'] = $current_points - $data['bet'];

    $this->db->where('user_id', $id);
    $this->db->update('users', $data);
}



// Something like this should be added to your Model file to get currentPoints

public function get_current_points($id)
{
    $id    = $this->db->escape($id);
    $query = $this->db->query("SELECT * FROM users WHERE user_id = $id LIMIT 1");
    return $query;
}