我有一个复选框,单击该复选框时会将值“是”发送到我的数据库(是否错过了会话?)。根据是否选中此复选框,我希望将其他数据发送到数据库。最好是可以通过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));'>";
}
?>
答案 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.
}
}