我正在尝试删除使用checkbox连接到数据库的表中的一行(如果只是一行或多行也没关系),但它不起作用,因为什么都没有发生。它不会删除,也不会出现错误或警告,只是刷新而已。
php:
<?php
if(isset($_POST['del_event']))
{
if(isset($_POST['check']) && count($_POST['check']))
{
$array = array("check" => $_POST['check']);
$id = implode(',', $array['check']);
$result = mysql_query("DELETE FROM event WHERE event_id = '$id'") or die(mysql_error());
}
}
?>html:
<form class="buttons" method="post" action="event.php">
<div class="button-wrap">
<input type="button" id="add_event" name="add_event" value="Add Event"/>
<input type="submit" id="del_event" name="del_event" value="Delete Event"/>
</div>
</form>
<tbody class="tbody-event-list-table2">
<?php
require "connection.php";
$check = mysql_query("SELECT * FROM event") or die(mysql_error());
if(mysql_num_rows($check) > 0)
{
while($row = mysql_fetch_array($check))
{
$id = $row['event_id'];
$name = $row['event_name'];
$start = $row['start'];
$end = $row['end'];
$venue = $row['event_venue'];
echo
"<tr>
<td><input type='checkbox' name='check' id='check' class='check' value='$id'/><a href=''
class='event-link'>$name</a></td><td>$start</td><td>$end</td><td>$venue</td>";
echo "</tr>";
}
}
else
{
echo
"<tr>
<td colspan='4'>There Are No Events.</td>
</tr>";
}
?>
</tbody>它是if(isset($_POST['del_event'])),因为'del_event‘是删除按钮的名称,除非选中复选框,否则该按钮将被禁用。
<script>
var chkbox = $(".check"),
button = $("#del_event");
button.attr("disabled","disabled");
chkbox.change(function(){
if(this.checked){
button.removeAttr("disabled");
}else{
button.attr("disabled","disabled");
}
});
</script>php版本为5.5.9
发布于 2014-04-25 15:23:34
如果是check变量,则仍会显示未定义的错误
if (isset($_POST['check']) && count($_POST['check']) != 0)但是,如果表单中的复选框处于关闭状态,则复选框不会随表单一起发送,因此该复选框不存在。Carpetsmoker说对了一半,一个合适的解决方案应该是:
if (isset($_POST['check'])) {
if ( (int) $_POST['check'] !== 0) {
}
}顺便说一句,最好总是将你的变量转换为你正在检查的属性类型。在PHP中,0可以是0、false或null。
通过使用===进行安全类型检查来防止这种情况
发布于 2014-04-30 10:35:02
所以我修复了这个问题。首先,我必须删除分隔按钮和表格的"form“,所以现在"form”被包裹在按钮和表格周围。其次是删除的php代码也改变了。
<form class="buttons" method="post" action="event.php">
<div class="button-wrap">
<input type="button" id="add_event" name="add_event" value="Add Event"/>
<input type="submit" id="del_event" name="del_event" value="Delete Event"/>
<input type="submit" id="edit_event" name="edit_event" value="Edit Event">
</div>
<div class="event-list-table2" >
<table class="event-table">
<thead>
<tr>
<th>Event Name</th>
<th>Start Event</th>
<th>End Event</th>
<th>Venue</th>
</tr>
</thead>
<tbody class="tbody-event-list-table2">
<?php
require "connection.php";
$check = mysql_query("SELECT * FROM event") or die(mysql_error());
if(mysql_num_rows($check) > 0)
{
while($row = mysql_fetch_array($check))
{
$id = $row['event_id'];
$name = $row['event_name'];
$start = $row['start'];
$end = $row['end'];
$venue = $row['event_venue'];
echo
"<tr>
<td><input type='checkbox' name='check[]' class='check' value='$id'><a href='' class='event-link' value='$id' name='event-link'>$name</a></td><td>$start</td><td>$end</td><td>$venue</td>";
echo "</tr>";
}
}
else
{
echo
"<tr>
<td colspan='4'>There Are No Events.</td>
</tr>";
}
?>
</tbody>
<?php
if (isset($_POST['del_event']) && isset($_POST['check']))
{
foreach($_POST['check'] as $del_id)
{
$del_id = (int)$del_id;
$sql = mysql_query("DELETE FROM event WHERE event_id = $del_id") or die(mysql_error());
if($sql)
{
echo "<meta http-equiv=\"refresh\" content=\"0;URL=event.php\">";
}
}
}
?>
</table>
</div>
</form>https://stackoverflow.com/questions/23286507
复制相似问题