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

これは、CSS+少しのJSであるBootstrapとは何の関係もありません。

フォームは、ユーザー入力値に基づいて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>

ところで、これはTwitterBootstrapに依存していません。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 に答える