1

我正在使用 Twitter Bootstrap (TWBS) 来构建我的 UI,并且在不使用表单时无法弄清楚如何发布数据。我基本上采用了 TWBS 的模板并尝试对其进行编辑。我正在尝试将“注销”值发送回我的 index.php 页面,该页面应该嗅出该值并注销用户。我在 HTML 中的代码:

        <ul class="dropdown-menu">
          <li><a href="#">Profile</a></li>
          <li class="divider"></li>
          <li><a href="./" type="submit" name="action" value="logout" method="post">Sign Out</a></li>
          <li><a href= "./"
            <form method="post">
                <input type="hidden" name="action" value="logout">Sign Out
            </a></form>
          </li>
        </ul>

如您所见,我还尝试模仿表单来发布操作,但这也不起作用。回到 php 代码中,“嗅探器”是:

if (isset($_POST['action']) and $_POST['action'] == 'logout')
{
session_start();
unset($_SESSION['loggedIn']);
unset($_SESSION['email']);
unset($_SESSION['password']);
header('Location: .'); 
exit();
}

谢谢您的帮助。

缠绕

4

3 回答 3

2

这与Bootstrap无关,它只是CSS +一点JS。

表单旨在根据用户输入值格式化 HTTP 请求 - 在这种情况下,您只需要一个链接:

<a href="index.php?action=logout">Logout</a>

如果你想在 Bootstrap 中使用它的样式,请添加如下内容:

<a href="index.php?action=logout" class="btn btn-primary">Logout</a>

顺便说一句,您只需通过POST方法将操作传递给您的 php 脚本 - 您最好参考$_REQUEST数组,然后根据$_SERVER['REQUEST_METHOD']是否有任何决定做出决定。

于 2012-09-25T23:54:37.797 回答
0

您是否尝试仅使用表单?在这种情况下,您实际上不必假装,您可以使用以下形式:

<li>
    <form method="post" action="./">
        <input type="hidden" name="action" value="logout" />
        <input type="submit" value="Sign Out" />
    </form>
</li>

如果您想要一个更复杂的按钮,您可以使用它并将 html 放入其中。

<button type="submit"><i class="icon-user"></i> Sign out</button>

顺便说一句,这不依赖于 Twitter Bootstrap。你可以在任何有 HTML 的地方使用它。

于 2012-09-25T22:22:50.627 回答
0

尝试:

        <ul class="dropdown-menu">
          <li><a href="#">Profile</a></li>
          <li class="divider"></li>
          <li><a href="#" onClick="document.getElementById('soForm').submit()">Sign Out</a></li>
          <li>"
            <form id="form" id="soForm" action="/" method="post">
                <input type="hidden" name="action" value="logout">Sign Out
            </form>
          </li>
        </ul>

您的问题是标签不是表单元素,因此您必须使用 js 来触发表单的提交操作。

查看 W3CSchools 以获取有关表单和标签的信息,以了解它们实际上可以做什么。

if (isset($_POST['action']) and $_POST['action'] == 'logout')
{
session_start();
unset($_SESSION['loggedIn']);
unset($_SESSION['email']);
unset($_SESSION['password']);
header('Location: /'); 
exit();
}
于 2012-09-25T19:38:08.757 回答