3

我有一个管理用户页面,允许用户删除和更新用户。我想让删除和更新用户页面成为带有关闭窗口选项的弹出窗口。但我不知道怎么做,这是我的管理用户代码

<?php
//MY PHP stuff
?>
<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Strict//EN”
“http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd”&gt;
<html xmlns=”http://www.w3.org/1999/xhtml”&gt;
<head>
<meta http-equiv=”Content-Type” content=”text/html; charset=utf-8” />
<title>Manage Users</title>
<link rel="stylesheet" type="text/css" href="../allcss/style.css" />
</head>

<body>

<?php
require('../Login/includes/header.inc.php');
?>

<div id="personalised">
<p>Hello, </p>
</div>
<div id="content">
<table>
  <tr>
    <th scope="col">User email</th>
    <th scope="col">User name</th>
    <th scope="col">User role</th>
    <th>&nbsp;</th>
    <th>&nbsp;</th>
  </tr>
  <?php while($row = $result ->fetch_assoc()) { ?>
  <tr>
    <td><?php echo $row['user_email']; ?></td>
    <td><?php echo $row['user_name']; ?></td>
    <td><?php echo $row['user_role']; ?></td>
    <td><a href="update_users.php?person_id=<?php echo $row['person_id']; ?>">EDIT</a></td>
    <td><a href="delete_users.php?person_id=<?php echo $row['person_id']; ?>">DELETE</a></td>
  </tr>
  <?php } ?>
</table>
</div>


</body>
</html>

这是 update_user.php 页面

<?php

require_once 'login.php'; 
$table="users";
$OK = false;
$done = false;
$conn = new mysqli ($host, $user, $password, $database) or die("Connection Failed");

$stmt= $conn->stmt_init();

if (isset($_GET['person_id']) && !$_POST) {
  // prepare SQL query
  $sql = 'SELECT person_id, user_email, user_name, user_role FROM users
          WHERE person_id = ?';
  if ($stmt->prepare($sql))
  {
  $stmt->bind_param('i', $_GET['person_id']);
  $stmt->bind_result($person_id, $user_email, $user_name, $user_role);
  $OK = $stmt->execute();
  $stmt->fetch();
  $_SESSION['uemail_update'] = $user_email; //new
  }
}
if (isset($_POST ['update'])) {
  // prepare update query
  $sql = 'UPDATE users SET user_name = ?, user_role = ?
          WHERE person_id = ?';
  if ($stmt->prepare($sql)) {
    $stmt->bind_param('ssi', $_POST['user_name'], $_POST['user_role'], $_POST['person_id']);
    $done = $stmt->execute();
  }
}
// redirect if $_GET['aperson_id'] not defined
if ($done) {
  header('Location: update_users_confirm.php');
  exit;
}
if (!isset($_GET['person_id'])) {
  header("Location: manage_users.php");
  exit;
}
// store error message if query fails
if (isset($stmt) && !$OK && !$done) {
  $error = $stmt->error;
}
?>
<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Strict//EN”
“http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd”&gt;
<html xmlns=”http://www.w3.org/1999/xhtml”&gt;
<head>
<meta http-equiv=”Content-Type” content=”text/html; charset=utf-8” />
<title>Project Confirmation</title>
<link rel="stylesheet" type="text/css" href="../allcss/style.css" />
</head>

<body>

<?php
require('../Login/includes/header.inc.php');
?>

<div id="personalised">
<p>Hello, </p>
</div>
<div id="content">
<?php 
if (isset($error)) {
  echo "<p class='warning'>Error: $error</p>";
}
if($person_id == 0) { ?>
  <p class="warning">Invalid request: user does not exist.</p>
<?php } else { ?>
<form id="form1" method="post" action="">
  <p>
    <label for="user_name">User name:</label>
    <input name="user_name" type="text" class="widebox" id="user_name" value="<?php echo htmlentities($user_name, ENT_COMPAT, 'utf-8'); ?>">
  </p>
  <p>
    User role: <select name="user_role" size="1" id="user_role">
    <option value="PT">Part timer</option>
    <option value="FT">Full timer</option>
    <?php echo htmlentities($user_role, ENT_COMPAT, 'utf-8'); ?></select>
  </p>
  <p>
    <input type="submit" name="update" value="Update Entry" id="update">
    <input name="person_id" type="hidden" value="<?php echo $person_id; ?>">
  </p>
</form>
<?php } ?>
</div>



</body>
</html>

有人可以帮我让 update_user.php 页面出现在一个弹出窗口中,该窗口在提交时也应该显示 Confirmation.php 页面。

谢谢

4

2 回答 2

7

您可以通过JavaScript查看下面给出的解决方案来做到这一点:

在 head 部分的页面顶部添加此脚本

<script>
function pop_up(url){
window.open(url,'win2','status=no,toolbar=no,scrollbars=yes,titlebar=no,menubar=no,resizable=yes,width=1076,height=768,directories=no,location=no') 
}
</script>

在您的代码中替换这些行

<td>
    <a href="update_users.php?person_id=<?php echo $row['person_id']; ?>" onclick="pop_up(this);">EDIT</a>
</td>
<td>
    <a href="delete_users.php?person_id=<?php echo $row['person_id']; ?>" onclick="pop_up(this);">DELETE</a>
</td>

希望它会有所帮助。

于 2013-03-29T14:17:37.270 回答
1

使用 java 脚本功能。

function popupCenter(pageURL, title, w, h) {
    var left = (screen.width / 2)  - (w / 2);
    var top  = (screen.height / 2) - (h / 2);
    var targetWin = window.open(pageURL, title, 'toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=yes, resizable=no, copyhistory=no, width='+w+', height='+h+', top='+top+', left='+left);
}

<a href="#" onclick="popupCenter('delete_users.php?person_id=<?php echo $row['person_id']; ?>')">DELETE</a>
于 2013-03-29T14:02:56.560 回答