我通过SELECT FROM...
(MySQL)从数据库中获取表中的值。这工作正常,但现在我想在每行中有一个删除按钮从数据库中删除此行。问题是创建日期都具有相同的名称属性
<?php $createDate = $_REQUEST['createDate'] ;
function deleteQuantityPlan($ createDate){
createConnection();
$delete_quantity_plan = "DELETE FROM andon_quantity_plan where erstelldatum = '". $createdate ."'";
$result = mysql_query($delete_quantity_plan) or die ("error");
return; }?>
HTML:
<form action="shiftenter.php" method="post">
<div class="col-lg-2" style="background-color:#E1E1E1;width:65%;border-radius:10px;float:left;margin-left:17.5%;margin-right:17.5%;margin-top:2.5%">
<h3>Taktvorgabe hinzufügen!</h3>
<div style="height:5px;"></div>
<table style="font-size:12px;" id="tabelle" class="table">
<thead>
<tr>
<th>Erstelldatum</th>
<th>Gültig von</th>
<th>Gültig bis</th>
<th>Schichtnummer</th>
<th>Stück/min</th>
<th style='float:right'>Taktvorgabe löschen</th>
</tr>
</thead>
<tbody id="table1Body">
<?php
$takttdaten = getAllQuantityPlans();
for ($i = 0; $i < sizeof($takttdaten); $i++) {
echo "<tr>";
echo "<form action='shiftenter.php' method='post'><td name='datum'>" . $takttdaten[$i]->erstelldatum . "</td>";
echo "<td>" . $takttdaten[$i]->validfrom . "</td>";
echo "<td>" . $takttdaten[$i]->validuntil . "</td>";
echo "<td>" . $takttdaten[$i]->shiftnumber . "</td>";
echo "<td>" . $takttdaten[$i]->planquantity . "</td>";
echo "<td><button style='float:right;' class='btn btn-danger' type='submit'>X</button></td></form>";
echo "</tr>";
}
?>
</tbody>
</table>
</div>
<button type="submit" style="width:15%;margin-top:35px;" class="btn btn-info">
<span style="float: left;" class="glyphicon glyphicon-floppy-disk"></span>Taktvorgabe speichern!</button>
</form>
答案 0 :(得分:3)
$delete_id = $_POST['checkbox'];
此代码可能没有值。那是因为您的checkbox
没有value
。我认为你的代码在你改变时会起作用:
<input type='checkbox' name='checkbox'>
进入
<input type='checkbox' name='checkbox' value="<?= $takttdaten[$i]->[YOUR_ID_VARIABLE] ?>">
修改强>
您只能使用带有GET变量的链接而不是表单。以下是您的案例示例:
假设您的评论/问题中的函数位于shiftenter
文件中,请将PHP更改为:
if (isset($_GET['deletePlan']) && $_GET['deletePlan'] == 'true') {
$deleteDate = $_GET['deletePlanDate'];
if($deleteDate != null && $deleteDate != "")
{
deleteQuantityPlan($deleteDate);
}
else
{
echo "Plan delete failed, Date [".$deletePlanDate."] was not valid.";
}
}
然后将HTML表格中的PHP部分更改为:
<?php
$takttdaten = getAllQuantityPlans();
for ($i = 0; $i < sizeof($takttdaten); $i++) {
echo "<tr>";
echo "<td>" . $takttdaten[$i]->erstelldatum . "</td>";
echo "<td>" . $takttdaten[$i]->validfrom . "</td>";
echo "<td>" . $takttdaten[$i]->validuntil . "</td>";
echo "<td>" . $takttdaten[$i]->shiftnumber . "</td>";
echo "<td>" . $takttdaten[$i]->planquantity . "</td>";
echo "<td> <a href='shiftenter.php?deletePlan=true&deletePlanDate=".$takttdaten[$i]->erstelldatum ."'>Delete</a></td>";
echo "</tr>";
}
?>
答案 1 :(得分:0)
从代码中,我看不到您引用了要删除的ID。
这是你的代码:
echo "<td><form action='shiftenter.php' method='post'><input type='checkbox' name='checkbox'>
<button style='float:right;' name='deletePlan' class='btn btn-danger' type='submit'>X</button></form></td>";
echo "</tr>";
我可能会重构您的代码。
我不会在最后一个td中包含一个表单元素,而是将表单放在整个表格中。 然后,您必须将复选框命名为此复选框[],以便将其定义为复选框数组。然后你得到一个循环的复选框数组 - 那些有值的(如果我没记错的话)。
根据当前的代码,我有以下建议:
如果你想在PHP中处理它,你将在shiftenter.php文件中执行$ _POST ['checkbox'] 但是复选框没有数据库中的帖子编号。 您可以通过为输入添加值来解决此问题,也可以添加输入类型='hidden'name ='itemid'value ='[YOUR_ID_VARIABLE]?&gt;
这看起来像这样:
解决方案1 :(以上建议)
echo "<td><form action='shiftenter.php' method='post'><input type='checkbox' name='checkbox' value='<?php echo $takttdaten[$i]->[YOUR_ID_VARIABLE] ?>'>
<button style='float:right;' name='deletePlan' class='btn btn-danger' type='submit'>X</button></form></td>";
echo "</tr>";
解决方案2:
echo "<td><form action='shiftenter.php' method='post'>
<input type='hidden' name='itemid' value='<?php echo $takttdaten[$i]->[YOUR_ID_VARIABLE] ?>'>
<input type='checkbox' name='checkbox' value='<?php echo $takttdaten[$i]->[YOUR_ID_VARIABLE] ?>'>
<button style='float:right;' name='deletePlan' class='btn btn-danger' type='submit'>X</button></form></td>";
echo "</tr>";
然后用$ _POST ['itemid'];
请求备选方案3:
echo "<td><form action='shiftenter.php?itemid=<?php echo $takttdaten[$i]->[YOUR_ID_VARIABLE] ?>' method='post'>
<input type='checkbox' name='checkbox' value='<?php echo $takttdaten[$i]->[YOUR_ID_VARIABLE] ?>'>
<button style='float:right;' name='deletePlan' class='btn btn-danger' type='submit'>X</button></form></td>";
echo "</tr>";
然后您可以使用$ _GET ['itemid'];
获取此值请记住检查您的值,使它们成为整数(在这种情况下)。 你可以这样做: $ itemId =(int)$ _POST ['itemid']; 或使用PHP清理过滤器,您可以在这里阅读:http://php.net/manual/en/filter.filters.sanitize.php
这里的santizing示例:
$myInt = "asfdsfsdafdsafs";
echo filter_var($myInt, FILTER_SANITIZE_NUMBER_INT);