【问题标题】:Using "action" in Twitter Boostrap classes在 Twitter Boostrap 类中使用“动作”
【发布时间】:2012-09-22 02:54:18
【问题描述】:

我是一名新手程序员,试图利用 Twitter Bootstrap 构建一个概念。我正在使用 PHP 并将 HTML 标记中的操作分配给 POST 数据,并基本上引导用户完成导航。这在使用表单时非常简单:即这里有一个可以工作的 sn-p。例如,对于这个 HTML 的 sn-p:

<form action="?viewnotes" method="post">
<input type="hidden" name="id" value="<?php htmlout($note['id']); ?>">
</form>

它成功触发了我的 index.php 中的以下 if 语句:

if (isset($_GET['viewnotes']))

但是,我正在尝试在我的注册页面中做同样的事情,使用 Twitter Bootstrap 类作为按钮。这是 HTML:

<a class="btn btn-primary btn-large" action="?register">Sign Up Free!&raquo;</a></p>

PHP代码是:

if (isset($_GET['register']))
{
include 'register.html.php';    
}

单击注册按钮不会调用 PHP 代码。如果我硬编码它可以工作的 URL,但是我在 register.html.php 页面上遇到了类似的问题。注册页面上的 HTML 有:

<form class="form-horizontal" action="?storeuser" method="post">
  <fieldset>
        <legend>It's quick and easy...</legend>
        <div class="control-group">
            <label class="control-label">First Name</label>
            <div class="controls">
                <input type="text" name="fname" class="input-xlarge" id="fname">
            </div>
        </div>
        <div class="control-group">
            <label class="control-label" name="lname">Last Name</label>
            <div class="controls">
                <input type="text" name="lname" class="input-xlarge" id="lname">
            </div>
        </div>
        <div class="control-group">
            <label class="control-label" name="email">Email Address</label>
            <div class="controls">
                <input type="text" name="email" class="input-xlarge" id="email">
            </div>
        </div>
        <div class="control-group">
            <label class="control-label" name="password">Password</label>
            <div class="controls">
                <input type="password" name="password" class="input-xlarge" id="password">
            </div>
        </div>
    </fieldset>
    <button type="submit" name="action" class="btn btn-primary btn-large">Complete Registration</button>
</form>

但是,当点击按钮时,索引文件不会触发以下,这会将字段存储到数据库中。

if (isset($_GET['storeuser']))

如果我将 URL 硬编码为 register.html.php,则生成的 URL 看起来像 localhost/register.html.php?storeuser 而不是 localhost/?storeuser。我不确定这是否会影响这里的行为。

感谢您的帮助!

【问题讨论】:

  • 请不要说“TWBS”是 Twitter Bootstrap 的缩写。不是。

标签: php html css twitter-bootstrap


【解决方案1】:

我认为您的处理方式错误,这不是 Twitter Bootstrap 的错。

通常,您会使用 POST 而不是 GET 来处理用户注册。您的表单将如下所示:

<form action="register.php" method="post">
  <!-- your form -->
  <fieldset>
    <input type="submit" name="register" value="Register" class="btn btn-primary" />
  </fieldset>
</form>

然后您可以按如下方式构建 register.php:

<?php
if (isset($_POST['register'])) {
    // handle user registration
}

// display form
?>

这将在用户访问 register.php 时显示表单,但如果表单已发布,则会尝试先处理用户注册。

【讨论】:

  • Martin,我感觉这可能只是缺乏编码技能,而不是任何与 TWBS 相关的东西,但想包括它以防万一。这个流程现在正在发挥作用。谢谢!
【解决方案2】:

尝试用你的 GET 变量传递一个值

<form action="?viewnotes=1" method="post">

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-08-01
    • 1970-01-01
    • 2023-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多