我制作一个for,其中我放了多个复选框,现在我想在数据库中保存每个选中的复选框值,但我只获得数据库中的数组文本... 这是我的表格代码......
<?php session_start();
include '../includes/layouts/header.php';
// Check, if username session is NOT set then this page will jump to login page
if (!isset($_SESSION['admin']))
{
header('Location:signin.php');
}
?>
<div id="main">
<div id="navigation" >
<ul class="nav">
<li><a href="selected_user.php">Users Statistics</a></li>
<li><a href="message.php">Post New Anousment</a></li>
<li><a href="#">Messages</a>
<ul>
<li><a href="#">Inbox</a></li>
<li><a href="#">Outbox</a></li>
</ul>
</li>
<li><a href="#">Setting</a>
<ul>
<li><a href="subadmin.php">Add Sub Admin</a></li>
<li><a href="#">Update Records</a></li>
<li><a href="del.php">Delete Records</a></li>
</ul>
</li>
<li><a href="logout.php">Logout</a></li>
</ul>
</div>
<div id="page">
<h2>Admin Menu</h2>
<p>Welcome to Admin Area</p>
<form action="subad.php" method="post">
<label for="">Admin Name</label><br>
<input type="text" name="admin_name" value=""/><br>
<label for="">Admin Password</label><br>
<input type="password" name="admin_password" value=""/><br><br>
<label for="">Select Rights For Admin</label><br><br>
<input type="checkbox" value="track user" name="chk[]"/>
<label for="">Manage/Track User's</label><br>
<input type="checkbox" name="chk[]" value=""/>
<label for="">Delete User's</label><br>
<input type="checkbox" name="anoucments" value=""/>
<label for="">Post New Anousment's</label><br>
<input type="checkbox" name="areject" value=""/>
<label for="">Accept/Reject User Application</label><br><br>
<input type="submit" name="add" value="Add Admin"/>
</form>
<?php
if(isset($_SESSION['success']))
{
echo $_SESSION['success'];
unset($_SESSION['success']);
}
?>
</div>
</div>
<?php include '../includes/layouts/footer.php' ?>
这是我的database.php代码
<?php session_start();
include 'conn.php';
$admin=$_POST['admin_name'];
$password=$_POST['admin_password'];
$track=$_POST['chk'];
for ($i=0; $i<sizeof($track);$i++) {
$sql="INSERT INTO sub_admin(Admin_Name,Password,Track_User)VALUES('$admin','$password','$track')";
$res=mysql_query($sql);
if($res)
{
$_SESSION['success']="Sub-Admin is successfuly added!";
header("location:subadmin.php");
}
else
{
echo mysql_error();
}
}
?>
任何人都可以告诉我这是什么原因?我想以true或false的形式存储复选框文本,因为在我的数据库中,我为每个复选框创建了单独的列。
并且任何人都可以告诉我如何由超级管理员制作subadmin并为他们分配有限的权限?任何想法或网络链接?
答案 0 :(得分:0)
尝试
$track = json_encode($_POST["chk"]);
这是最快的解决方案,因为您的数据库与复选框不匹配。但是,如果数据库的设计时每个复选框都是一列,则可以在每个复选框中保存true或false。
从数据库中获取数据数组
$data = mysql_result($ret, 0, "Track_User");
$track = json_decode($data, true);
答案 1 :(得分:0)
您目前将$track
设置为等于整个数组$_POST['chk']
。
正如jetawe在评论中建议的那样,您需要运行$track[$i]
作为Track_User列的值。