表单在导航菜单中提交

时间:2013-08-09 19:21:55

标签: php javascript html form-submit

我需要的是这个

My menu

我的PHP代码是:

class logout{
    public function __construct(){
        session_unset();
        session_destroy();
        session_write_close();
        setcookie(session_name(),'',0,'/');
        session_regenerate_id(true);
    }


}
if(!empty($_POST['logout'])){
    $object=new logout();
}

为此我使用的是html代码:

<ul id="navlist">
      <li><a href="index.php">Home</a></li>
      <li><a href="dates.php">Dates</a></li>
      <li><a href="candidate.php">Candidates</a></li>
      <li><a href="database.php">Database</a></li>
      <li><a href="password.php">Change Password</a></li>
      <li><a href='logout.php'>Log Out</a></li>
</ul>

注销我需要从我读过的主页提交javascript表单提交。

如果我喜欢这样:

<li><a href=''><form method="post"><input type='submit' value='Log Out' name='logout' style="border:0px;" /></form></a></li>

我得到这样的东西:

Bad Menu

如何解决问题(我是否使用javascript如何提交表单?)

3 个答案:

答案 0 :(得分:3)

如果加载了jQuery,可以通过ajax完成。这样您就可以保持导航样式。

<li><a href="#" class="log-out">Log Out</a></li>

$('.log-out').click(function() {
   $.post('logout.php');
});

详细了解$.post()$.ajax()

的ajaxs简写

答案 1 :(得分:2)

我认为您不需要发布此内容,简化它...更改此行以使用$_GET

if(!empty($_GET['logout'])){
    $object=new logout();
}

并使用?logout=true

<ul id="navlist">
      <li><a href="index.php">Home</a></li>
      <li><a href="dates.php">Dates</a></li>
      <li><a href="candidate.php">Candidates</a></li>
      <li><a href="database.php">Database</a></li>
      <li><a href="password.php">Change Password</a></li>
      <li><a href='?logout=true'>Log Out</a></li>
</ul>

现在您可以在任何页面上包含您的退出代码。

答案 2 :(得分:0)

是的,您需要手动提交表单,这是一个纯粹的JS方式来执行此操作:

<li>
  <a href="" onclick="javascript: findForm('logout').submit()">
   <form id="logout" action="logout.php" method="post">
    <input type='submit' value='Log Out' name='logout' style="border:0px;" />
   </form>
  </a>
</li>

function findForm(id) {
  for (var i = document.forms.length-1; i >= 0; i--) {
    if (document.forms[i].id == id) return document.forms[i];
  }

  return null;
}