我有一个HTML输入页面,可以在网格中添加分数。
status valueA valueB checkboxA checkboxB
1 4 5 2 x x
2 3 3 1 x
3 5 7 2
4 4 6 3 x
包括一些像这样的复选框,如果状态为 3,则带有 ng-hide 条件 (angularjs(。(表示带有数字 3 的所有状态,我不需要看到,所以我无法选中复选框。
<form action="/save_score.php">
...
<td><input type="hidden" value="0" name="checkboxA1"/>
<input type="checkbox" value="1" name="checkboxA1" ng-hide="status1 == 3"/></td>
...
<input type="submit" value="Save">
</form>
此输入页面工作正常。 例如,状态为 2 = 3 的复选框 A2 我看不到因此无法检查。 其他的都是可见的,我可以正确使用它们。 分数将正确添加到系统中。
稍后在我保存分数后,我可以进入一种历史页面,其中包含所有添加的不同日期的分数,在那里我可以看到以前可以更改它们的所有分数(我需要此页面,因为有时会发生我犯了一个错误并想要更改分数(我单击分数的详细信息并返回分数网格。
Score History
Date Score
11-11-2019 89 Details
10-10-2019 90 Details
09-09-2019 88 Details
...
其中还有复选框。
<form action="/update_score.php">
...
<input type=“checkbox” value= “<?php echo $checkboxA1; ?>” name="checkboxA1" <?php if($checkboxA1) {
echo 'checked="checked"';} ?>></td>
...
<input type="submit" value="Update">
</form>
现在我想更改此行,以便隐藏状态为 3 的复选框。 但是到目前为止,我还没有找到隐藏相应复选框而不会收到更新错误的方法。
我在输入类型中尝试过这个...(这将使相应的复选框消失(
type="<?php if ($status1 > 3) {echo 'checkbox';} else { echo 'hidden';}?>"
我想补充的是,复选框的隐藏是一项设计功能,因为它看起来更好,并且可以避免在输入和更新分数期间出现其他错误,但它尚不起作用,因为所有隐藏的复选框都无法更新。 它们都返回我的 MySQL 数据库更新不接受的"。
所以我的问题是,如何隐藏复选框并正确获取更新
由于更新错误来自空输入,因此不应将这些输入包含在表单中,或者只是将它们设置为禁用,浏览器将不会发布其值。
type=<?php if ($status1 > 3) {echo '"checkbox"';} else { echo '"hidden" disabled';}?>