在我设计的网站中,管理列表页面显示了名称,电子邮件,用户名和状态(无论是活动用户还是非活动用户)等字段。我的数据库有一个名为 admin 的表。这些字段是 iAdminId,vFirstName,vLastName,vEmail,vUserName,vPassword,vFromIP,vFromIP,dLastLogin和eStatus 。在等效的PHP页面(管理列表页面)中,我添加了一个活动&非活动按钮。每行都有复选框。管理员选择的行数将在他/她点击 Active 或 Inactive 按钮后更新(当然确认后)。
我的激活javscript代码是:
function activeRecord()
{
var count = getCount();
if(count == 0)
{
alert("Please enter some records for activation first!!");
}
else
{
var c = confirm("Do you wish to activate?");
if(c==true)
{
document.frm.mode.value="Active";
document.frm.submit();
}
else
{
alert("You had wrongly selected 'Active' option!!");
}
}
}
getCount返回所选记录的数量。 PHP代码是
if($mode=="Active")
{
for($i=0;$i<count($_POST['ch']);$i++)
{
$active = "UPDATE admin SET eStatus = 'Active' WHERE iAdminId = '" . $_POST['ch'][$i] . "'";
$result = mysql_query($active,$conn);
}
}
即使选择了不删除所选记录。我也试着回应。
echo $ active =“UPDATE admin SET eStatus ='Active'WHERE iAdminId ='”。 $ _POST ['ch'] [$ i]。 “'”;
“ch”是所有复选框的数组名称
它显示: UPDATE admin SET eStatus ='无效'WHERE iAdminId =''
任何帮助将不胜感激。提前致谢
ch用作:
请帮助。这很紧急。谢谢大家
答案 0 :(得分:0)
在你的情况下,$_POST['ch']
应该是一个数组。通过在PHP脚本中放置var_dump($_POST['ch'])
来检查是否属实。
您的复选框也应使用相同的名称(<input name="ch[]" value="Element-ID" />
)。
没有必要在括号中添加索引。如果你这样做,你的for-Loop(可以被foreach
替换)将不起作用,因为你只是检查长度并用错误的密钥遍历数组。
答案 1 :(得分:-1)
很抱歉打扰所有人并感谢他们为解决我的问题而感兴趣。
我想我需要一双额外的眼睛来检查我的代码。正如@fabsn要求我重新检查我的代码。我输入了复选框的值。所以他们没有机会变得空白。这只是一个小错误。它现在纠正了,现在工作得非常好。我想从现在开始我需要更加小心,这样我就不必为此烦恼了。
再次感谢