PHP selectfield 从数据库中获取值,更改 POST
PHP selectfield get value from database, change and POST
我是 PHP 的初学者并且有一些不错的问题 ^^
想从数据库的“已禁用”字段中选取数据并使用该值更新选择字段。
选择字段有 2 个可能的选项“是”和“否”(值 0 或 1)。
现在我终于想 post 将选定或未更改的值返回到数据库。
这里所有的值包括 disabled 被 MYSQL SELECT query
加载到 $row
$mydb->query('SELECT a.* ...
$row = $mydb->fetchRow();
这里是写入数据库的工作查询/table(在其他领域测试过)。
disabled 是应该的字段 updated/overwritten:
$sql = "REPLACE INTO `api_tokens` (`id`, `disabled`) VALUES (
".$id.",
".(empty($_POST['disabled']) ? 0 : 1).")";
这里的表单应该有2个selectable选项,其中一个应该是从数据库加载的值,另一个应该是相反的值。
不清楚value/ares标有????
<div class="row">
<label for="disabled">Deactivate</label>
<select name="disabled" id="disabled">
<option selected="<?=$row['disabled']?>"></option>
<option value="????">No</option>
<option value="????">Yes</option>
</select>
试试这个。关键是检查每个条件的值。如果保存的选择是 'no' (0),则设置 select
属性。对 'yes' (1).
做同样的事情
<div class="row">
<label for="disabled">Deactivate</label>
<select name="disabled" id="disabled">
<option value="0"<?php echo ($row['disabled'] == 0?' selected':''); ?>>No</option>
<option value="1"<?php echo ($row['disabled'] == 1?' selected':''); ?>>Yes</option>
</select>
更新
我从你的评论中看出你想要进一步的说明。事情是这样的:
- 每个
<option>
元素将指定一个 value
属性作为它所属的 <select>
元素的一个可能选择。做出选择后,将设置 <option>
元素的 selected
属性。 (从技术上讲,<select>
元素上有 multiple
属性,但我们现在不讨论它。)
- 当您的用户提交表单时,他们的选择(选项值)通过将它们存储在数据库中而持久化。在此示例中,这将是 either
1
是或 0
否。
- 如果您想向用户显示他们表单所在的最后状态,您必须从数据库中读回他们的选择。您现在必须在他们之前选择的
<option>
元素上设置 select
属性。在他们的屏幕上,他们选择的选项现在在 <select>
列表中突出显示。
您可以在 $row['disabled']
中找到他们提交的选择,其中 'disabled'
键等于 <select>
元素的 name
属性。要在右侧(先前选择的)<option>
元素上设置 select
属性,请检查 $row['disabled']
与每个 <option>
元素的值。他们平等吗?那么这是他们最后选择的选项,所以现在突出显示它并在这个特定的 <option>
元素上设置 selected
属性。
我是 PHP 的初学者并且有一些不错的问题 ^^
想从数据库的“已禁用”字段中选取数据并使用该值更新选择字段。
选择字段有 2 个可能的选项“是”和“否”(值 0 或 1)。 现在我终于想 post 将选定或未更改的值返回到数据库。
这里所有的值包括 disabled 被 MYSQL SELECT query
加载到 $row $mydb->query('SELECT a.* ...
$row = $mydb->fetchRow();
这里是写入数据库的工作查询/table(在其他领域测试过)。 disabled 是应该的字段 updated/overwritten:
$sql = "REPLACE INTO `api_tokens` (`id`, `disabled`) VALUES (
".$id.",
".(empty($_POST['disabled']) ? 0 : 1).")";
这里的表单应该有2个selectable选项,其中一个应该是从数据库加载的值,另一个应该是相反的值。 不清楚value/ares标有????
<div class="row">
<label for="disabled">Deactivate</label>
<select name="disabled" id="disabled">
<option selected="<?=$row['disabled']?>"></option>
<option value="????">No</option>
<option value="????">Yes</option>
</select>
试试这个。关键是检查每个条件的值。如果保存的选择是 'no' (0),则设置 select
属性。对 'yes' (1).
<div class="row">
<label for="disabled">Deactivate</label>
<select name="disabled" id="disabled">
<option value="0"<?php echo ($row['disabled'] == 0?' selected':''); ?>>No</option>
<option value="1"<?php echo ($row['disabled'] == 1?' selected':''); ?>>Yes</option>
</select>
更新
我从你的评论中看出你想要进一步的说明。事情是这样的:
- 每个
<option>
元素将指定一个value
属性作为它所属的<select>
元素的一个可能选择。做出选择后,将设置<option>
元素的selected
属性。 (从技术上讲,<select>
元素上有multiple
属性,但我们现在不讨论它。) - 当您的用户提交表单时,他们的选择(选项值)通过将它们存储在数据库中而持久化。在此示例中,这将是 either
1
是或0
否。 - 如果您想向用户显示他们表单所在的最后状态,您必须从数据库中读回他们的选择。您现在必须在他们之前选择的
<option>
元素上设置select
属性。在他们的屏幕上,他们选择的选项现在在<select>
列表中突出显示。
您可以在 $row['disabled']
中找到他们提交的选择,其中 'disabled'
键等于 <select>
元素的 name
属性。要在右侧(先前选择的)<option>
元素上设置 select
属性,请检查 $row['disabled']
与每个 <option>
元素的值。他们平等吗?那么这是他们最后选择的选项,所以现在突出显示它并在这个特定的 <option>
元素上设置 selected
属性。