2012-08-23 186 views
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> 

我有这个code.when我选中一个复选框,项目将被激活或停用根据bottom.however此代码的工作完全在除谷歌Chrome和safari.can任何人的帮助所有的浏览器,请.it继续给我的SQL语法espeaciall在更新查询中的where子句之后出现错误。谢谢MySQL查询问题

+2

我不认为'mysql'有任何与浏览器有关的东西。 –

+2

您应该认真清理您的传入数据! –

+1

这不合法:'id =“复选框[]”'摆脱它。 – Ariel

回答

0

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

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

+0

更新查询does not读th id ..当我使用car_dump,结果是: string'UPDATE projects SET p_isActive ='0'WHERE p_id IN'(length = 51) –

+0

然后,如果你做'var_dump($ id );'而是你应该看到变量没有从复选框中读取。最有可能的原因是$复选框未设置,因为$ _POST ['checkbox']不包含任何内容。你的复选框有'id =“复选框[]”'就像Ariel说的,这应该是'id =“复选框”' –

+0

它没有工作。问题是,在Firefox中查询读取的ID和一切工作fine.hownever在铬该ID不能被读取 –

0

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

没有必要分配一切ID。如果你真的在javascript中使用它,只分配一个ID。否则,请将其放弃。

INPUT领域确实需要一个name属性,但全部工作不同于一个ID

+0

我删除了id ..并且已经有一个名称为所有输入字段..没有上述working.still同样的问题。 –

+0

@pascaleabouabdo请在设置之后发布'print_r($ _ POST);'的结果,'$ id'的值以及设置后的'$ sql'的值。 – Ariel