我有一个mysqli数据库表中显示的非活动用户表。然后,我为每个用户创建了一个新行,每行包含一个包含dropmenu的单元格,其中包含3个选项 - admin,delete user,activate user。
$stmt = $mysqli->prepare("SELECT username, firstname, lastname, registerdate FROM users WHERE level < 1");
$stmt->bind_param('ssss', $_GET['username'], $_GET['firstname'], $_GET['lastname'], $_GET['registerdate']);
$stmt->execute();
$stmt->bind_result($username, $firstname, $lastname, $registerdate);
?>
<table>
<tr>
<th colspan="7"><h1>Inactive Users</h1></th>
<tr>
<td><h2>Username</h2></td>
<td><h2>Firstname</h2></td>
<td><h2>Lastname</h2></td>
<td><h2>Date Registered</h2></td>
<td><h2>Days Inactive</h2></td>
<td><h2>Activate</h2></td>
<td><h2>Submit</h2></td>
<?php
while ($stmt->fetch()){
$today = new DateTime("now");
$registered = new DateTime($registerdate);
$dayspassed = date_diff($registered, $today);
echo '<tr class="'.$username.'">
<td>'.$username.'</td>
<td>'.$firstname.'</td>
<td>'.$lastname.'</td>
<td>'.$registered->format("d-m-y").'</td>
<td>'.$dayspassed->format("%a days").'</td>
<td>
<select name="'.$username.'" id="'.$username.'">
<option selected>Select Action</option>
<option value="activate">Activate User</option>
<option value="delete">Delete User</option>
<option value="admin">Admin</option>
</select>
</td>
<td><input type="submit" name="'submit'" value="Confirm" />
</td>';
}
$stmt->close();
?>
</table>
我正在尝试编写一些类似于foreach
dropmenu的基本代码,其值为“activate”,将用户插入到激活的表中。每个选择菜单都具有从db表中收集的$username
名称。到目前为止,我有类似的东西。
if(isset($_POST['submit']))
{
$activate = $_POST["activate"];
$delete = $_POST["delete"];
$admin = $_POST["admin"];
foreach ($username == $_POST["activate"]{
答案 0 :(得分:0)
首先,当handle $ var等于$ _POST时,你需要检查是否设置了$ _POST,否则你会收到错误。
if(isset($_POST['activate'])) $activate = $_POST['activate'];
好吧,那么,如果你选择4个用户,如果你想处理它,你可以使用Ajax。使用js关闭提交按钮上的默认操作,然后将所有ID用于激活,删除所有ID以及所有任何ID,并在阵列上连接[&#39; action_type&#39;] [&# 39; USER_ID&#39;];
然后,你只需将$ _POST发送到另一个php来处理。
有关更好的示例说明,您可以获得:
array['activate']['1'];
array['activate']['2'];
array['delete']['3'];
array['activate']['4'];
或者你可以
array['activate']['1,2,4'];
array['delete']['3'];
然后你可以激活用户1,2和3,并在一个循环中删除用户4(使用你喜欢的东西。while,do-while,for,foreach ......)
希望它有所帮助!
答案 1 :(得分:0)
Php for select:
<select name="'.$username.'" onchange="updateUser(this)" id="'.$username.'">
然后javascript(使用jQuery):
function updateUser(param) {
var username = $(param).attr('id');
var action = $(param).val();
var phpDataPrepare = [username, action];
var phpData = JSON.stringify(phpDataPrepare);
$.ajax({
url:'<?php echo htmlspecialchars($_SERVER["PHP_SELF"]) . "?action=update_user"; ?>',
data: phpData,
type: 'POST',
success: function(data){
//data = response
//put any javascript here as a success function if needed.
}
});
}
然后只需编写PHP即可接收此信息(靠近同一页面的顶部)
获取您的信息:
if(isset($_GET['action']){
if($_GET['action'] == 'update_user'){
$info = json_decode(file_get_contents('php://input'));
$username = $info[0];
$action = $info[1];
//Do what needs to be done
exit();
}
}