如何在PHP中通过GET方法传递数据

时间:2017-07-30 13:06:51

标签: php content-management-system

我创建了一个网站管理员可以查看和编辑其菜单导航项的页面。正如您在此图片中看到的那样:

print screen one

因此每个菜单项旁边都有两个链接。一个用于删除菜单项,另一个用于更新菜单项。

基本上我为更新菜单项所做的就是抓取该项目的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();

1 个答案:

答案 0 :(得分:0)

您可以将数据存储在get请求的标头中。

看看这里:http://php.net/manual/en/function.headers-list.php