1
    <?php
session_start();
include("configdb.php");
if(!session_is_registered(username)){
header("location:index.php");
}
?>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Projects</title>
<link href="style.css" rel="stylesheet" type="text/css" />

<script type="text/javascript">

function un_check(){
for (var i = 0; i < document.frmactive.elements.length; i++) {
var e = document.frmactive.elements[i];
if ((e.name != 'allbox') && (e.type == 'checkbox')) {
e.checked = document.frmactive.allbox.checked;
}
}
}
function Confirm(form){
alert("Project has been activated!");
form.submit();
}
function unConfirm(form){
alert("Project has been Deactivated!");
form.submit();
}
</script>
</head>

<body>
<div id="costDiv">
<div id="divErc"></div>
<div id="costBack">

<?php

if(isset($_POST['checkbox'])){$checkbox = $_POST['checkbox'];
if(isset($_POST['activate'])?$activate = $_POST["activate"]:$deactivate = $_POST["deactivate"])

$id = "('" . implode( "','", $checkbox ) . "');" ;
$sql="UPDATE projects SET p_isActive = '".(isset($activate)?'1':'0')."' WHERE p_id IN $id";
$result = mysql_query($sql) or die(mysql_error());

}

?>
<?php include("hor_menu.php"); ?>


<form name="frmactive" method="post" action="">

<table width="350" border="0" cellspacing="1" cellpadding="5" align="center" style="margin-left:150px ; margin-right:auto ; margin-top:20px ; margin-bottom:auto ; position:absolute ; width:400px">

<tr>
<td align="center" ><input type="checkbox" name="allbox" onclick="un_check(this);" title="Select or Deselct ALL" style="background-color:#ccc;"/></td>

<td align="left"><strong>Project</strong></td>
<td align="left"><strong>Country</strong></td>
<td align="left"><strong>Active</strong></td>

</tr>

<?php
while($rows=mysql_fetch_array($result)){
?>
<tr>
<td align="center"><input name="checkbox[]" type="checkbox" id="checkbox[]" value="<?php echo $rows['p_id']; ?>"/></td>
<td><?php echo $rows['p_name']; ?></td>
<td><?php echo $rows['p_country']; ?></td>
<td><?php if ($rows['p_isActive'] == '1'){ echo'Active';} else{ echo 'Inactive';} ?></td>

</tr>
<?php
}
?>
<tr>
<td colspan="5"><input name="activate" type="submit" id="activate" value="Activate" onClick="Confirm(this.form)" />
<input name="deactivate" type="submit" id="deactivate" value="Deactivate" onClick="unConfirm(this.form)"/></td>
</tr>
</table>


?>
</td>
</tr>
</table>
</form>
</body>
</html>

我有这个代码。当我检查一个复选框项目时,将根据底部激活或停用。但是,此代码在除 google chrome 和 safari 之外的所有浏览器上都能完美运行。任何人都可以帮忙。它一直在我的 sql 中出现错误更新查询中 where 子句之后的语法尤其是。谢谢

4

2 回答 2

0

这是不合法id="checkbox[]"的:摆脱它。

没有必要将所有内容都分配给ID. ID仅在您实际在 javascript 中使用它时才分配。否则就别管它了。

INPUT字段确实需要一个name属性,但它的工作方式ID.

于 2012-08-23T09:09:14.677 回答
0

如果您收到取决于浏览器的 SQL 错误,那么您很可能需要检查您的输入。PHP 执行不会因您使用的浏览器而有所不同,除了它从客户端控件(如文本框或触发器)获取的数据之外。

我建议您$sql以某种方式记录变量,您可以尝试使用var_dump, 来查看数据在浏览器之间的变化。

于 2012-08-23T08:40:05.753 回答