我正在使用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();
}
感谢您的帮助。
绳索
答案 0 :(得分: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']
做出决策。< / p>
答案 1 :(得分: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();
}
答案 2 :(得分: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>
BTW,这不依赖于Twitter Bootstrap。您可以在任何有HTML的地方使用它。