复选框,确定哪些数据发送到数据库

时间:2019-04-17 23:20:31

标签: php html

我有一个复选框,单击该复选框时会将值“是”发送到我的数据库(是否错过了会话​​?)。根据是否选中此复选框,我希望将其他数据发送到数据库。最好是可以通过If Else语句来完成。

下面我尝试了一些代码,但是好像数据是在提交表单后发送的,因此它实际上不起作用。

<label class="control control--checkbox">Missed Session
  <input type="checkbox" name="missed_session" value="YES" />
  <div class="control__indicator"></div>
</label>

<?php
   $x=(htmlentities($treat['completed_sessions']));
   if(isset($_POST['missed_session'])){
     echo"<input type='hidden' id='completed_sessions' name='completed_sessions' value='print (($x));'>";
   }else{
     echo "<input type='hidden' id='completed_sessions' name='completed_sessions' value='print (($x+1));'>";
   }
?>

1 个答案:

答案 0 :(得分:0)

我尝试在服务器端进行大部分验证。您可以拥有一个if语句,该语句将检查$_POST['missed_sessions']并在将$x插入/更新到数据库之前对其进行更改。

  $x = (htmlentities($treat['completed_sessions']));
  if (!isset($_POST['missed_session'])) {
    $x += 1; // add one to 'completed_sessions'
  }

此代码通常将在更新/插入功能中使用,例如:

  function updateData() {
    if (isset($_POST['btn_submit'])) {
      $id = $_POST['id'];
      $user = $_SESSION['username'];
      $x = (htmlentities($treat['completed_sessions']));
      if (!isset($_POST['missed_session'])) {
        $x += 1; // x now is increased by one before db entry
      }
      $stmt = $con->prepare("UPDATE sessions_table SET
        user = '$user',
        x = '$x'
        WHERE id = '$id'");
      $stmt->execute();
      // more code, etc.
    }
  }