使用Bootstrap输入按钮不起作用

时间:2014-12-18 21:05:54

标签: php button input twitter-bootstrap-3 contact-form

我一直在使用Bootstrap 3来开发一个正在开发的项目,到目前为止它已经创造了奇迹而且真的无法解决它。但是我现在遇到了一个我似乎无法理解的问题。

问题:基本输入提交按钮没有做任何事情 - 但是当在自己的页面上运行时,即没有引导程序它运行正常。

以下是代码:

<section>
    <div class="container">
        <div class="col-md-6">

            <?php
                // define variables and set to empty values
                $name = $email = $gender = $comment = $website = "";

                if ($_SERVER["REQUEST_METHOD"] == "POST") {
                   $name = test_input($_POST["name"]);
                   $email = test_input($_POST["email"]);
                   $message = test_input($_POST["message"]);
                }

                function test_input($data) {
                   $data = trim($data);
                   $data = stripslashes($data);
                   $data = htmlspecialchars($data);
                   return $data;
                }
                ?>

                <h2>PHP Form Validation Example</h2>
                <form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">
                   Name: <input type="text" name="name">
                   <br><br>
                   E-mail: <input type="text" name="email">
                   <br><br>
                   Comment: <br>
                    <textarea name="message" rows="5" cols="40"></textarea>
                   <br><br>
                   <input type="submit" name="submit" value="Submit">
                </form>

                <?php
                echo "<h2>Your Input:</h2>";
                echo $name;
                echo "<br>";
                echo $email;
                echo "<br>";
                echo $comment;
            ?>

        </div>
    </div>
</section>

如果您需要查看在包含其他内容的网页上运行该内容,您可以here

此外,我打算将其作为联系表单,但无论我使用什么PHP代码,我仍然会遇到此问题。

2 个答案:

答案 0 :(得分:1)

您的contact_me.js中有此代码导致问题:

8.   submitSuccess: function($form, event) {
9.     event.preventDefault(); // prevent default submit behaviour
10.    // get values from FORM
11.    var name = $("input#name").val();
...
15.    var firstName = name; // For Success/Failure Message
16.    // Check for white space in name for Success/Fail message
17.    if (firstName.indexOf(' ') >= 0) {
18.      firstName = name.split(' ').slice(0, -1).join(' ');
...

控制台返回错误:

TypeError: firstName is undefined

我认为你选择的名字不合适。尝试使用:

var name = $("input[name=name]").val();

答案 1 :(得分:0)

我建议你做的是在你的表格中离开摆脱行动=&#34;&#34; 然后在PHP代码中进行所有变量清理和显示之前添加以下代码:

if (isset($_POST['submit'])) {
    // Clean input, validate input. Then below output the form data.
}

基本上这个代码会检查是否按下了提交表单,并且表单被指定为它检查的POST。如果按下提交按钮,它只会清理并显示。试试看,告诉我它是怎么回事。你可能会感到困惑,为什么我把提交放在POST中,这是因为你的提交按钮有一个名字=&#34;提交&#34;,所以你使用那个名字。如果您将其更改为name =&#34; contactUs&#34;那么你就 isset($ _ POST [&#39; contactUs&#39;])

修改

我写了一个简单的例子,它在执行时有效,你需要调整它以适应你的代码。

<section>
    <div class="container">
    <div class="col-md-6">

            <?php
                function test_input($data) {
                   $data = trim($data);
                   $data = stripslashes($data);
                   $data = htmlspecialchars($data);
                   return $data;
                }
            ?>

            <h2>PHP Form Validation Example</h2>
            <form method="post">
               Name: <input type="text" name="name">
               <br><br>
               E-mail: <input type="text" name="email">
               <br><br>
               Comment: <br>
                <textarea name="message" rows="5" cols="40"></textarea>
               <br><br>
               <input type="submit" name="submit" value="Submit">
            </form>
            <?php
            if (isset($_POST['submit'])) {
                $name = test_input($_POST['name']);
                $email = test_input($_POST['email']);
                $comment = test_input($_POST['message']);

                echo $name . " - " . $email . " - " . $comment . " - ";
            }
            ?>
    </div>
</div>
</section>