【问题标题】:Html form not submitting data?Html表单不提交数据?
【发布时间】:2014-05-10 19:17:05
【问题描述】:

有人知道为什么我的 HTML 表单没有提交任何东西吗?一旦我点击提交按钮它什么都不做?不知道发生了什么,检查了所有内容,但我无法理解它?如果有人可能有想法,那将非常有帮助,谢谢!

<div class="row">
<div class="col-md-6">

    <div class="alert alert-success hidden" id="contactSuccess">
        <strong>Success!</strong> Your message has been sent to us.
    </div>

    <div class="alert alert-danger hidden" id="contactError">
        <strong>Error!</strong> There was an error sending your message.
    </div>

    <form name="register" action="register.php" id="contactForm" type="POST">
        <div class="row">
            <div class="form-group">
                <div class="col-md-6">
                    <label>First name *</label>
                    <input type="text" value="" data-msg-required="Please enter your first name." maxlength="100" class="form-control" name="first_name" id="name">
                </div>
                <div class="col-md-6">
                    <label>Last name *</label>
                    <input type="text" value="" data-msg-required="Please enter your last name." maxlength="100" class="form-control" name="last_name" id="name">
                </div>
            </div>
        </div>
        <div class="row">
            <div class="form-group">
                <div class="col-md-12">
                    <label>Your email address *</label>
                    <input type="email" value="" data-msg-required="Please enter your email address." data-msg-email="Please enter a valid email address." maxlength="100" class="form-control" name="email_address" id="email">
                </div>
            </div>
        </div>
        <div class="row">
            <div class="form-group">
                <div class="col-md-6">
                    <label>Username *</label>
                    <input type="text" value="" data-msg-required="Please enter a valid username." maxlength="100" class="form-control" name="username" id="name">
                </div>
                <div class="col-md-6">
                    <label>Contact Number *</label>
                    <input type="number" value="" data-msg-required="Please enter your mobile number." maxlength="100" class="form-control" name="mobile" id="name">
                </div>
            </div>
        </div>
        <div class="row">
            <div class="form-group">
                <div class="col-md-6">
                    <label>Date of birth *</label>
                    <br>
                    <fieldset class="date">
                        <select id="date1" name="date1" />
                        <option>1</option>
                        <option>2</option>
                        <option>3</option>
                        <option>4</option>
                        <option>5</option>
                        <option>6</option>
                        <option>7</option>
                        <option>8</option>
                        <option>9</option>
                        <option>10</option>
                        <option>11</option>
                        <option>12</option>
                        <option>13</option>
                        <option>14</option>
                        <option>15</option>
                        <option>16</option>
                        <option>17</option>
                        <option>18</option>
                        <option>19</option>
                        <option>20</option>
                        <option>21</option>
                        <option>22</option>
                        <option>23</option>
                        <option>24</option>
                        <option>25</option>
                        <option>26</option>
                        <option>27</option>
                        <option>28</option>
                        <option>29</option>
                        <option>30</option>
                        <option>31</option>
                        </select>
                        <select id="date2" name="date2" />
                        <option>Jan</option>
                        <option>Feb</option>
                        <option>Mar</option>
                        <option>Apr</option>
                        <option>May</option>
                        <option>Jun</option>
                        <option>Jul</option>
                        <option>Aug</option>
                        <option>Sep</option>
                        <option>Oct</option>
                        <option>Nov</option>
                        <option>Dec</option>
                        </select>
                        <select id="date3" name="date3" />
                        <option>1905</option>
                        <option>1906</option>
                        <option>1907</option>
                        <option>1908</option>
                        <option>1909</option>
                        <option>1910</option>
                        <option>1911</option>
                        <option>1912</option>
                        <option>1913</option>
                        <option>1914</option>
                        <option>1915</option>
                        <option>1916</option>
                        <option>1917</option>
                        <option>1918</option>
                        <option>1919</option>
                        <option>1920</option>
                        <option>1921</option>
                        <option>1922</option>
                        <option>1923</option>
                        <option>1924</option>
                        <option>1925</option>
                        <option>1926</option>
                        <option>1927</option>
                        <option>1928</option>
                        <option>1929</option>
                        <option>1930</option>
                        <option>1931</option>
                        <option>1932</option>
                        <option>1933</option>
                        <option>1934</option>
                        <option>1935</option>
                        <option>1936</option>
                        <option>1937</option>
                        <option>1938</option>
                        <option>1939</option>
                        <option>1940</option>
                        <option>1941</option>
                        <option>1942</option>
                        <option>1943</option>
                        <option>1944</option>
                        <option>1945</option>
                        <option>1946</option>
                        <option>1947</option>
                        <option>1948</option>
                        <option>1949</option>
                        <option>1950</option>
                        <option>1951</option>
                        <option>1952</option>
                        <option>1953</option>
                        <option>1954</option>
                        <option>1955</option>
                        <option>1956</option>
                        <option>1957</option>
                        <option>1958</option>
                        <option>1959</option>
                        <option>1960</option>
                        <option>1961</option>
                        <option>1962</option>
                        <option>1963</option>
                        <option>1964</option>
                        <option>1965</option>
                        <option>1966</option>
                        <option>1967</option>
                        <option>1968</option>
                        <option>1969</option>
                        <option>1970</option>
                        <option>1971</option>
                        <option>1972</option>
                        <option>1973</option>
                        <option>1974</option>
                        <option>1975</option>
                        <option>1976</option>
                        <option>1977</option>
                        <option>1978</option>
                        <option>1979</option>
                        <option>1980</option>
                        <option>1981</option>
                        <option>1982</option>
                        <option>1983</option>
                        <option>1984</option>
                        <option>1985</option>
                        <option>1986</option>
                        <option>1987</option>
                        <option>1988</option>
                        <option>1989</option>
                        <option>1990</option>
                        <option>1991</option>
                        <option>1992</option>
                        <option>1993</option>
                        <option>1994</option>
                        <option>1995</option>
                        <option>1996</option>
                        <option>1997</option>
                        <option>1998</option>
                        <option>1999</option>
                        <option>2000</option>
                        <option>2001</option>
                        <option>2002</option>
                        <option>2003</option>
                        <option>2004</option>
                        <option>2005</option>
                        <option>2006</option>
                        <option>2007</option>
                        <option>2008</option>
                        <option>2009</option>
                        <option>2010</option>
                        <option>2011</option>
                        <option>2012</option>
                        <option>2013</option>
                        <option>2014</option>
                        </select>
                    </fieldset>
                </div>
                <div class="col-md-6">
                    <label>Contact Number *</label>
                    <input type="radio" name="gender" value="Male">Male
                    <input type="radio" name="gender" value="Female">Female
                </div>
            </div>
        </div>
        <div class="row">
            <div class="col-md-12">
                <input type="submit" name="Submit" value="Register" class="btn btn-lg btn-primary">
            </div>
        </div>
    </form>
</div>

我正在使用我网站上的联系表格的副本作为注册表单,因为它看起来好多了,也许这是原因之一?

按要求注册.php:

<?

include 'core/init.php';

// Define post fields into simple variables
$first_name = mysql_real_escape_string($_POST['first_name']);
$last_name = mysql_real_escape_string($_POST['last_name']);
$email_address = mysql_real_escape_string($_POST['email_address']);
$username = mysql_real_escape_string($_POST['username']);
$mobile = $_POST['mobile'];
$gender = $_POST['gender'];
$date1 = $_POST['date1'];
$date2 = $_POST['date2'];
$date3 = $_POST['date3'];

/* Let's strip some slashes in case the user entered
any escaped characters. */

$first_name = stripslashes($first_name);
$last_name = stripslashes($last_name);
$email_address = stripslashes($email_address);
$username = stripslashes($username);
$gender = stripslashes($gender);




/* Do some error checking on the form posted fields */

if((!$first_name) || (!$last_name) || (!$email_address) || (!$gender) || (!$username)){
    if(!$first_name){
        header('Location: signup.php?signuperror=2');
    }
    if(!$last_name){
        header('Location: signup.php?signuperror=3');
    }
    if(!$email_address){
        header('Location: signup.php?signuperror=4');
    }
    if(!$username){
        header('Location: signup.php?signuperror=5');
    }
    if(!$gender){
        header('Location: signup.php?signuperror=6');
    }
    include "signup.php"; // Show the form again!
    /* End the error checking and if everything is ok, we'll move on to
     creating the user account */
    exit(); // if the error checking has failed, we'll exit the script!
}

/* Let's do some checking and ensure that the user's email address or username
 does not exist in the database */

 $sql_email_check = mysql_query("SELECT email_address FROM users WHERE email_address='$email_address'");
 $sql_username_check = mysql_query("SELECT username FROM users WHERE username='$username'");

 $email_check = mysql_num_rows($sql_email_check);
 $username_check = mysql_num_rows($sql_username_check);

 if(($email_check > 0) || ($username_check > 0)){
    if($email_check > 0){
        header('Location: signup.php?signuperror=7');
        unset($email_address);
    }
    if($username_check > 0){
        header('Location: signup.php?signuperror=8');
        unset($username);
    }
    include 'signup.php'; // Show the form again!
    exit();  // exit the script so that we do not create this account!
 }

/* Everything has passed both error checks that we have done.
It's time to create the account! */

/* Random Password generator. 
http://www.phpfreaks.com/quickcode/Random_Password_Generator/56.php

We'll generate a random password for the
user and encrypt it, email it and then enter it into the db.
*/

function makeRandomPassword() {
  $salt = "abchefghjkmnpqrstuvwxyz0123456789";
  srand((double)microtime()*1000000); 
    $i = 0;
    while ($i <= 7) {
            $num = rand() % 33;
            $tmp = substr($salt, $num, 1);
            $pass = $pass . $tmp;
            $i++;
    }
    return $pass;
}

$random_password = makeRandomPassword();

$db_password = md5($random_password);

// Enter info into the Database.
$info2 = htmlspecialchars($info);
$sql = mysql_query("INSERT INTO users (first_name, last_name, email_address, username, password, gender, date1, date2, date3, signup_date, mobile)
        VALUES('$first_name', '$last_name', '$email_address', '$username', '$db_password', '$gender', '$date1', '$date2', '$date3', now(), '$mobile')") or die (mysql_error());

if(!$sql){
    header('Location: signup.php?signuperror=9');
} else {
    $userid = mysql_insert_id();
    // Let's mail the user!
    $subject = "BaseCentre Members";
    $message = "Dear $first_name $last_name,
    Thank you for registering at BaseCentre, http://www.basecentre.co.uk/

    You are two steps away from logging in and accessing our exclusive entertainment.

    To activate your membership, please click here: http://www.basecentre.co.uk/activate.php?id=$userid&code=$db_password

    Once you activate your memebership, you will be able to login with the following information:
    Username: $username
    Password: $random_password

    Thanks!
    Base Admin Team.

    This is an automated response, please do not reply!";

    mail($email_address, $subject, $message, "From: BaseCentre Members<admin@basecentre.co.uk>\nX-Mailer: PHP/" . phpversion());
    ////// MAIL ADMIN
    $subject2 = "BaseCentre New User!";
    $message2 = "Dear Admin,
    This is a message to alert you that a new user has signed up to BaseCentre.

    You can view all details of the new member and all other members direct from the admin control panel at http://basecentre.co.uk/admin.php

    Here are the details of the new registered user:
    Username: $username
    Email Address: $email_address

    Thanks!
    BaseCentre Automation.

    This is an automated response, please do not reply!";

    mail('aidan6141@hotmail.co.uk', $subject2, $message2, "From: BaseCentre Members<admin@basecentre.co.uk>\nX-Mailer: PHP/" . phpversion());
    header('Location: login.php?loginerror=6');
include 'login.php';
}

?>

JS 脚本供参考:

/*
Name:           View - Contact
Written by:     Okler Themes - (http://www.okler.net)
Version:        2.0
*/

(function() {

    "use strict";

    var Contact = {

        initialized: false,

        initialize: function() {

            if (this.initialized) return;
            this.initialized = true;

            this.build();
            this.events();

        },

        build: function() {

            this.validations();

        },

        events: function() {



        },

        validations: function() {

            $("#contactForm").validate({
                submitHandler: function(form) {

                    // Loading State
                    var submitButton = $(this.submitButton);
                    submitButton.button("loading");

                    // Ajax Submit
                    $.ajax({
                        type: "POST",
                        url: "php/contact-form.php",
                        data: {
                            "name": $("#contactForm #name").val(),
                            "email": $("#contactForm #email").val(),
                            "subject": $("#contactForm #subject").val(),
                            "message": $("#contactForm #message").val()
                        },
                        dataType: "json",
                        success: function (data) {
                            if (data.response == "success") {

                                $("#contactSuccess").removeClass("hidden");
                                $("#contactError").addClass("hidden");

                                // Reset Form
                                $("#contactForm .form-control")
                                    .val("")
                                    .blur()
                                    .parent()
                                    .removeClass("has-success")
                                    .removeClass("has-error")
                                    .find("label.error")
                                    .remove();

                                if(($("#contactSuccess").position().top - 80) < $(window).scrollTop()){
                                    $("html, body").animate({
                                         scrollTop: $("#contactSuccess").offset().top - 80
                                    }, 300);
                                }

                            } else {

                                $("#contactError").removeClass("hidden");
                                $("#contactSuccess").addClass("hidden");

                                if(($("#contactError").position().top - 80) < $(window).scrollTop()){
                                    $("html, body").animate({
                                         scrollTop: $("#contactError").offset().top - 80
                                    }, 300);
                                }

                            }
                        },
                        complete: function () {
                            submitButton.button("reset");
                        }
                    });
                },
                rules: {
                    name: {
                        required: true
                    },
                    email: {
                        required: true,
                        email: true
                    },
                    subject: {
                        required: true
                    },
                    message: {
                        required: true
                    }
                },
                highlight: function (element) {
                    $(element)
                        .parent()
                        .removeClass("has-success")
                        .addClass("has-error");
                },
                success: function (element) {
                    $(element)
                        .parent()
                        .removeClass("has-error")
                        .addClass("has-success")
                        .find("label.error")
                        .remove();
                }
            });

        }

    };

    Contact.initialize();

})();

【问题讨论】:

  • 您也可以发布您的register.php 吗?
  • 你应该learn how to use the label element properly。如果没有 for 属性或其中的表单控件,标签是无用的。
  • 我现在添加注册脚本...
  • 另一个问题你的选择元素 应该是
  • 表单的目的是在某处提交数据。如果我们看不到您在哪里发布它,我们如何为您提供帮助?

标签: php html forms submit


【解决方案1】:

改变这一行,

<form name="register" action="register.php" id="contactForm" method="POST">

您必须使用method="POST" 而不是type="POST"

【讨论】:

  • 改了还是没发什么?
  • 当你键入 type="POST" 时,它的提交是默认方法 "GET"。当类型为方法 =“POST”时,它会作为 POST 数据发布。它对我来说工作正常。请检查可能存在其他一些 jquery 或 JS 问题。请检查您的控制台查看错误。
  • 嗯表单真的提交了吗?
  • 是的,表单正在提交。我正在新的 php 文件中获取值。
  • 否则请检查action="register.php" 是否在正确的路径中。根据您的代码,您的联系表单和 register.php 的路径应该在同一个文件夹中。
【解决方案2】:

表单的有效属性是method 而不是type

method = 'post'

【讨论】:

  • 改了还是发不出来?
【解决方案3】:

很简单: type="POST" 更改为 Method="POST"

【讨论】:

    【解决方案4】:

    除了 post 方法,输入字段也应该有一个 name 属性。

    【讨论】:

    • 这是我的 node express 应用程序没有得到它的原因。谢谢!
    【解决方案5】:

    如果您的表单没有提交,并且您已经检查了之前答案中的建议,那么您可能有多个表单结束标签、重叠的表单标签或错误关闭的 div。

    这里有一个标准的清单,而不是纯粹基于 php,如果你仍然遇到这个问题,你可以看看:

    1. 检查您的表单标签中是否有有效的操作元素 例如:action="/subjects"

    2. 检查您有一个有效的方法元素(不是类型元素) 例如:method="post"

    3. 打开和关闭&lt;form&gt; 标记以及放置在这些标记中的提交按钮。确保没有额外的 div 导致元素不正确关闭。 - 仔细检查这是导致许多头痛的最常见原因

    4. 重叠的表单标签。 (确保您没有多个表单结束标签等)

    5. 正在发送帖子,但后端/服务器/api 中存在错误,未向浏览器返回错误或成功消息? (按F12后检查网络部分或浏览器)

    如果您的问题仍然存在,请考虑尝试使用 javascript 而不是 html 表单提交。通过将onclick 事件添加到按钮并编写form.submit 函数。

    我从未听说过任何不同的表单提交错误,这些错误未记录在控制台中,或者您可以在浏览器开发工具栏的“网络”部分看到。很想知道你到底遇到了什么问题。

    【讨论】:

      【解决方案6】:

      还要检查您的 action="register.php" 是否被重定向。

      例如action="/xyz/register.php" -- register.php 应该在“xyz”文件夹中。

      如果register.php 不在“xyz”文件夹中并且表单被重定向,它将转到正确的页面但会丢失表单的值(姓名、电子邮件等)。

      【讨论】:

        【解决方案7】:

        确保您提交按钮的类型是提交而不是类型按钮。

        【讨论】:

          【解决方案8】:

          确保每个字段都有属性名称。

          示例:name="email"

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2013-11-27
            • 2021-03-31
            • 1970-01-01
            • 2017-03-20
            相关资源
            最近更新 更多