我创建了一个网站管理员可以查看和编辑其菜单导航项的页面。正如您在此图片中看到的那样:
因此每个菜单项旁边都有两个链接。一个用于删除菜单项,另一个用于更新菜单项。
基本上我为更新菜单项所做的就是抓取该项目的ID并将其重定向到另一个名为itemedit.php
的页面,如下所示:
<a title='Edit' href='itemedit.php?i=$i'><span class='glyphicon glyphicon-pencil'></span></a>
在页面itemedit.php
中,我这样做了:
<?php
if (isset($_GET['i'])){
$i = $_GET['i'];
$e = // The name that user entered
$editItem = new Menus();
if(isset($_POST['yes'])){
$editItem->EditMenuItem($i,$e);
echo '<META HTTP-EQUIV="Refresh" Content="0; URL=menus.php">';
exit;
}
if(isset($_POST['no'])){
echo '<META HTTP-EQUIV="Refresh" Content="0; URL=menus.php">';
exit;
}
echo "
<section class='content' style='text-align:center;'>
<form action='' method='POST'>
<h5><strong>
Are you sure you want to edit the selected item ?</br></br>
</strong></h5>
<p>
<button name='yes' type='submit' class='btn btn-primary'>Yes</button>
<button name='no' type='submit' class='btn'>No</button>
</p>
</form>
</section>";
因此,如果管理员点击“是”,它应该调用Menus
类,如下所示:
我已经跳过了写下此类中的数据库连接和额外信息
<?php
class Menus{
public function EditMenuItem($i,$e)
{
if(!empty($i))
{
$adm = $this->db->prepare("UPDATE menu_nav SET menu_link_$i = $e");
$adm->bindParam(1,$i);
$adm->execute();
}
else
{
header("Location: php/includes/errors/012.php");
exit();
}
}
}
?>
现在问题是我不知道如何通过 $ e 变量传递数据,该变量包含该菜单项的新版本。
因为我使用了超链接而不是输入来将我的页面重定向到itemedit.php
,所以我无法传递名称属性。那么有没有办法或解决方案在itemedit.php
中正确传递这些数据?或者没有?
<?php
if (isset($_GET['i'])){
$i = $_GET['i'];
$e = // The name that user entered
$editItem = new Menus();