我是php的新手,我有一个问题。 如何更新db中的复选框状态?复选框具有相同的名称。当点击更新按钮时,它将更新db中的所有行复选框stat。和db中的复选框获得true或false
html部分
<div class='blocks-output'>
<form action='/admin/blocks' method='post'>
<input type='hidden' name='updated_block_index' value=''/>
<input type='hidden' name='updated_block_name' value=''/>
<table class='table table-hover table-striped table-bordered'>
<thead>
<tr class='text-uppercase'>
<td>#</td>
<td>selected</td>
<td>block index</td>
<td>block name</td>
<td>edit</td>
<td>delete</td>
</tr>
</thead>
<tbody>
<?php foreach ($blocksInfo as $row) { ?>
<tr>
<td>
<?php echo $row['id']; ?>
</td>
<td>
<input type="checkbox" name='id' value='<?php echo $row['id']; ?>' <?php if($row['selected'] == 1) echo 'checked'; ?> />
</td>
<td>
<p><?php echo $row['block_index']; ?></p>
<div class='form-group hidea'>
<input type='number' class='form-control' name='block_index' placeholder='Block index' value='<?php echo $row['block_index']; ?>'>
</div>
</td>
<td>
<p><?php echo $row['block_name']; ?></p>
<div class='form-group hidea'>
<input type='text' class='form-control' name='block_name' placeholder='Block name' value='<?php echo $row['block_name']; ?>'>
</div>
</td>
<td>
<a href='' class='edit-row btn btn-primary' role='button'>edit</a>
<button class='update-row btn btn-primary' name='update_row' value='<?php echo $row['id']; ?>'>update</button>
</td>
<td>
<button type='submit' class='btn btn-primary' name='delete_row' value='<?php echo $row['id']; ?>'>delete</button>
</td>
</tr>
<?php } ?>
<tr>
<td>
<input type='submit' class='btn btn-primary' name='clear_table' value='delete all'>
</td>
<td></td>
<td></td>
<td></td>
<td ></td>
<td>
<input type='submit' class='btn btn-primary' name='update_table' value='update'>
</td>
</tr>
</tbody>
</table>
</form>
</div>
谢谢你:)
答案 0 :(得分:2)
替换&#39; id&#39;为了下面的名字。
<input type="checkbox" name='<?php echo $row['id']; ?>' value='<?php echo $row['id']; ?>' <?php if($row['selected'] == 1) echo 'checked'; ?> />
&#13;
当您声明姓名=&#39; id&#39;所有元素都采用相同的名称,在上述声明之后,每个复选框都有一个等于ID的唯一名称。
答案 1 :(得分:0)
答案 2 :(得分:0)
这很简单: form.php的
<html>
<body>
<form action="action.php" method="POST">
<label class="checkbox inline">
<input type="checkbox" name="frm_update" id="frm_update" value="<?=$id>"> check this box
</label>
</form>
</body>
</html>
action.php的
<?php
if(isset($_POST['frm_update'])){
//do what you wanted to do. Save it to database etc
}
答案 3 :(得分:0)
使用类似:id[]
的数组,每个复选框的值应与表中的ID相同。
所以它将简短<input type="checkbox" name='id[]' value='<?php echo $row['id']; ?>' <?php if($row['selected'] == 1) echo 'checked'; ?> />
所以在发布后您将只获得已选中的复选框,因此相应地将数据保存在数据库中。