我正在为容量有限的活动制作动态注册表,但我遇到的问题是表单在某些情况下没有提交。请允许我解释......
其中一个表单字段要求用户选择他们要保留的席位数。该字段配有一个计数器,列出剩余的可用座位数。计数器计算从MySQL数据库中累计相关列所占用的席位总数,然后从可用席位总数中减去该数字。这是看起来的样子......
SELECT userId FROM tblName WHERE code = 'A' AND WHERE userId =
(SELECT userId FROM tblName WHERE code != 'B')
当所有座位都被占用($ available_seats == 0)时,我用一个复选框替换select元素,该复选框允许用户指示是否应该将他们的队伍添加到候补名单中。这是脚本,位于正文的底部......
<div id="seat_field">
<select name="seats" id="seats" class="field" required>
<option value="" disabled selected>select</option>
<option value="0">None</option>
<option value="1">1</option>
<option value="2">2</option>
</select>
</div>
<?php
$servername = "localhost";
$username = "***";
$password = "***";
$dbname = "***";
$conn = new mysqli($servername, $username, $password, $dbname);
$query = mysqli_query($conn, "SELECT SUM(seats) AS total_seats FROM event");
$row = mysqli_fetch_assoc($query);
$total_seats = $row['total_seats'];
$available_seats = 44-$total_seats;
echo "<div><div id='available_seats' class='seats'>$available_seats</div><div id='seats_remaining' class='seats'> seats remaining</div></div>";
?>
成功隐藏了select元素,并且复选框已预先设置。但是,表单不提交...没有控制台错误,没有任何反应。有人可以提供任何建议吗?非常感谢。
编辑 - 添加完整表单...
$(document).ready(function() {
var available_seats = document.getElementById("available_seats").innerHTML;
if (available_seats == 0){
$("#seats").hide();
$("#seats").prop('required', false);
$("#seat_field").prepend("<strong>Check to add your party to the bus waiting list</strong>  <input type='checkbox' name='waitlist' /> ");
};
});
答案 0 :(得分:0)
你的jQuery正在检查手机&#39;和&#39;数字&#39;如果没有找到,则返回false。这些字段不在您的表单中。从jQuery中删除该验证或将它们作为输入字段添加到表单中。
答案 1 :(得分:0)
感谢所有看过这一点的人 - 我发现罪魁祸首是在我的表格验证中,虽然不像康拉德所提到的那样(无论如何,非常感谢Konrad使我更加注意验证,从而导致我注意我的实际错误) -
if(first_name == "" || last_name == "" || email == "" || seats == ""){
return false;
}
在所有座位都被占用的情况下,我忘记从验证中移除“座位”,因此表单返回错误。
这是一个非常愚蠢的错误,如果我自己这么说的话......我对这个问题很感兴趣,这是使用条件脚本根据PHP / MySQL结果交换元素的一些问题我完全忽略了一个非常简单明了的解决方案。