Php 数据库条目多个记录
我在mysqli数据库的表中显示了一个非活动用户表。然后,我为每一个用户创建了一个新行,并为每一行创建了一个单元格,其中包含一个下拉菜单,该菜单有3个选项:admin、delete user、activate user。Php 数据库条目多个记录,php,html,Php,Html,我在mysqli数据库的表中显示了一个非活动用户表。然后,我为每一个用户创建了一个新行,并为每一行创建了一个单元格,其中包含一个下拉菜单,该菜单有3个选项:admin、delete user、activate user。 $stmt = $mysqli->prepare("SELECT username, firstname, lastname, registerdate FROM users WHERE level < 1"); $stmt->bind_param('ssss
$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>
{
首先,当handle$var等于$\u POST时,需要检查是否设置了$\u POST,否则会出现错误
if(isset($_POST['activate'])) $activate = $_POST['activate'];
好的,然后,如果你选择4个用户,例如,如果你想处理它,你可以使用Ajax。使用js关闭提交按钮上的默认操作,然后使用所有id进行激活,所有id进行删除,所有id进行任何你想要的操作,并在数组['action_type']['user_id']上进行concat
然后,您只需通过$\u 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…)
希望对您有所帮助!Php for select:
<select name="'.$username.'" onchange="updateUser(this)" id="'.$username.'">
为什么不在每次更改下拉列表时都进行ajax更新?我很难理解您想要什么。您能更具体一点吗?当按下提交时,选择菜单的选项将定义结果。如果我想在选择菜单中为3个用户分配管理员并单击提交时,将他们添加到我不明白AJAXAjax比一开始看起来要容易得多,我保证。
array['activate']['1,2,4'];
array['delete']['3'];
<select name="'.$username.'" onchange="updateUser(this)" id="'.$username.'">
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.
}
});
}
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();
}
}