我想在我正在开发的结算系统中使用批量删除功能,但是当var_dump
编辑时,复选框会在检查时产生NULL值 。
这是我的标记(已编辑):
<form method="post" name="form-countries-del">
<div id="deleteBox">
<span class="middleAlign"><b>No. of Records:</b> <span class="red"><?= $qtotal; ?></span></span>
<span class="rightAlign">
<input type="submit" value="Delete" name="submit-countries-del" class="del-submit" />
</span>
</div>
<table border="1" id="src-table">
<tr class="header">
<td><input type="checkbox" id="toggleChecks"></td>
<td class="_hide">CountryID</td>
<td>Country Code</td>
<td>Country Name</td>
<td>Telco Rate</td>
</tr>
<?php while($row = $pdo->fetch()) : ?>
<tr class="<?=($c++%2==1) ? 'even' : 'odd' ?>" title="Double click to edit">
<td><input type="checkbox" name="toDelete[]" id="toDelete[]" class="toDelete" value="<?= $row['CountryID']; ?>" /></td>
<td class="_hide"><?= $row['CountryID']; ?></td>
<td><?= highlight($_POST['search'], $row['CountryCode']); ?></td>
<td><?= highlight($_POST['search'], $row['CountryName']); ?></td>
<td><?= $row['Trate']; ?></td>
</tr>
<?php endwhile; ?>
</table>
</form>
生成的表单(Google Chrome)是这样的:
遗憾的是它只会产生NULL。我不知道我错过了什么。我一直在扫描很多关于我的问题的类似文章,但迄今为止都没有。
我希望大家能帮助我! 干杯!
答案 0 :(得分:0)
在您选中复选框之前,您将获得值为NULL,选中复选框并尝试使用post方法后,您将检索该值。
答案 1 :(得分:0)
你的HTML很糟糕。
将<form method="post" name="form-countries-del">
移至<div id="deleteBox">
答案 2 :(得分:0)
您的form
关闭(</form>)
未正确定义。
您的html代码将生成如下<span> <form> ......(without ending form) </span>
Html解析如果任何未关闭的标签出现,它将自动在中间添加结束标记。
像这样,<span >
<form>
<!-- Submit button -->
</form> <!-- added automatically -->
</span>
<!-- Check box elements goes here -->
答案 3 :(得分:0)
一些MVC框架乱用请求变量,如POST。你可能会遇到这种情况。由于您的提交按钮发布正常,这可能只是POST数组的问题。试试这个以解决这个问题。
<input type="checkbox" name="toDelete-<?= $row['CountryID']; ?>" id="toDelete[]" class="toDelete" value="<?= $row['CountryID']; ?>" /></td>
<td class="_hide"><?= $row['CountryID']; ?>
您可以像这样访问值:
$toDelete = array();
foreach($_POST as $p){
$ex = explode('-',$p);
if($ex[0]=='toDelete'){
$toDelete[] = $ex[1];
}
}