2012-03-06 33 views
0

我正在创建一个有两个复选框yes和no的窗体。我已将一个yes或no添加到名为Completed的mysql字段中。复选框不会使用mysql中的勾号更新

我越来越勾选框,以显示打勾的问题,如果有一个是或号

那么根据什么是在现场完成的“是”或“否”的勾选框领域应打勾或不打勾。

我的代码是这样的:因为你检查 '是' 和 '否'

<input type="checkbox" name="Completed" Completed="Yes" value="<?php echo $stuff["Completed"]; ?>" <?php echo $stuff["Completed"] ? 'checked=" checked"' : ''; ?> > Yes</td>

<input type="checkbox" name="Completed" Completed="No" value="<?php echo $stuff["Completed"]; ?>" <?php echo $stuff["Completed"] ? 'checked=" checked"' : ''; ?> > No</td>

+0

那么问题是什么?生成的HTML显示什么? – j08691 2012-03-06 16:53:59

回答

2

检查框不打我作为一个适当的控制对于这种类型的信息。你考虑过使用单选按钮吗?无论如何,你的问题的答案取决于你如何在数据库中存储数据。如果它是一个简单的“是”或“否”,然后尝试类似如下:

<input type="radio" name="Completed" value="Yes" <?php echo $stuff["Completed"] == 'Yes' ? 'checked="checked"' : ''; ?> /> 
+0

同意单选按钮更好,尤其是对于这种类型的选项,其中用户可以检查错误是和否 – Ryan 2012-03-06 17:05:33

+0

辉煌的工作完美:)谢谢。感谢您的无线电建议。 – Matt 2012-03-06 17:08:55

2

<?php echo $stuff["Completed"] ? 'checked=" checked"' : ''; ?>将始终返回true。这个值对于php来说是正确的。你必须设置值0或1分贝或检查做这样的事情:

<?php echo $stuff["Completed"] == 'Yes' ? 'checked=" checked"' : ''; ?>

...

<?php echo $stuff["Completed"] == 'No' ? 'checked=" checked"' : ''; ?>