【问题标题】:Form not submitting values表单未提交值
【发布时间】:2018-06-30 02:47:42
【问题描述】:

好吧,我是一名自学成才的程序员,所以如果我遗漏了什么,也不必过于粗鲁,哈哈。这是我创建的第一个表单,并且设置了 css、html 和 php。我的问题是每当我点击提交按钮时,它所做的只是重新加载页面并且不发送任何数据。老实说,我在这里查看了其他论坛的答案,但是我在其他论坛中找到的东西,我已经尝试过,但没有奏效。如果有人能告诉我为什么它不提交将有很大帮助的值,我将在下面留下我的代码。

<head>
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <meta name="description" content="Contact Us">
    <meta name="keywords" content="Contact Us">
    <meta name="viewport" content="width=device-width,initial-scale=1,user-scalable=no">
    <meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">
    <meta name="HandheldFriendly" content="true">
    <link href="https://fonts.googleapis.com/css?family=Barlow+Condensed" rel="stylesheet" />
    <link rel="stylesheet" type="text/css" href="ContactUs.css">
    <link href="style.css" rel="stylesheet" />
    <!--[if IE 6]>
    <style type="text/css">html .group { height: 1%; }</style>
    <![endif]-->
    <!--[if IE 7]>
    <style type="text/css">*:first-child+html .group { min-height: 1px; } </style>
    <![endif]-->
    <!--[if lt IE 9]> 
    <script src="https://cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv.min.js"></script>
    <![endif]-->
</head>

这是我的 HTML

<div class="global_container_">
    <header class="header-box-holder"></header>
    <div class="header-left"></div>
    <div class="header-center"></div>
    <div class="l-constrained">
    <div class="main-content-wrapper">
    <div class="header-image"><a href="http://www.fykemusic.com/"><img src="images/header_box.jpg" /></a>
    <div id="form-main">
    <div id="form-div">
    <form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
        <p class="name">
            <input name="name" type="text" class="validate[required,custom[onlyLetter],length[0,100]] feedback-input" placeholder="Name" id="name" />
        </p>
        <p class="email">
            <input name="email" type="text" class="validate[required,custom[email]] feedback-input" id="email" placeholder="Email" />
        </p>
        <p class="message">
            <textarea name="message" class="validate[required,length[6,300]] feedback-input" id="comment" placeholder="Message"></textarea>
        </p>
        <div class="submit">
            <input type="submit" value="Submit" id="button-blue"/>
            <div class="ease"></div>
        </div>
    </form>
</div>

这是我的 PHP

<?php 
if(isset($_POST['submit'])) {
    $name = $_POST['name'];
    $email = $_POST['email'];
    $message = $_POST['message'];
    $formcontent="From: $name \n Message: $message";
    $recipient = "searaadair@hotmail.com";
    $subject = "Contact Form";
    $mailheader = "From: $email \r\n";
    mail($recipient, $subject, $formcontent, $mailheader) or die("Error!");
    echo "Thank You!";
}
?>

【问题讨论】:

  • Lucumts 的答案很可能是正确的,但如果没有看到全貌,就不可能知道。您的 PHP 在文档中的什么位置?你能发布完整的代码吗?我在 html 中看到了其他一些问题。例如,标签 在代码中间。
  • 另外,HTML 真的在 PHP 文件中吗?如果不是,您的表单指向一个无效的 URL,实际上不会在任何地方发布。
  • 是的,我的html和php在一个php文件中,php位于代码最下方。我有一种预感,它可能需要放在其他地方,我说得对吗?或者那有关系吗?并感谢约翰。我删除了!
  • 我更新了我的其余代码,减去 CSS,因为我认为这不是问题
  • @JohnT 是的,谢谢!我阅读了我的错误日志并发现了其他一些内容并进行了更改。感谢您的帮助!

标签: php forms


【解决方案1】:

尝试将其用于您的 PHP 模板。我注意到一些&lt;divs&gt; 缺少结束标签,所以我修复了它。最奇怪的问题是您如何拥有两个&lt;form&gt; 标签,而其中只有一个正在关闭。这两行在这里...

<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
<form class="form" id="form1">

必须在同一个标​​签内。

<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>" class="form" id="form1">

用下面的 PHP 试试。你还有一个奇怪的流浪&lt;html&gt;标签。

</head>
<div class="global_container_">
    <header class="header-box-holder"></header>

    <div class="header-left"></div>

    <div class="header-center"></div>

    <div class="l-constrained">
    <div class="main-content-wrapper">
        <div class="header-image"><a href="http://www.fykemusic.com/"><img 
src="images/header_box.jpg" /></a></div>
        <div id="form-main">
            <div id="form-div">
                <form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>" class="form" id="form1">
                    <p class="name">
                        <input name="name" type="text" 
    class="validate[required,custom[onlyLetter],length[0,100]] feedback-input" 
    placeholder="Name" id="name" />
                    </p>

                    <p class="email">
                        <input name="email" type="text" 
    class="validate[required,custom[email]] feedback-input" id="email" 
    placeholder="Email" />
                    </p>

                    <p class="message">
                        <textarea name="message" class="validate[required,length[6,300]] 
feedback-input" id="comment" placeholder="Message"></textarea>
                    </p>

                    <div class="submit">
                        <input type="submit" value="Submit" id="button-blue"/>
                        <div class="ease"></div>
                    </div>
                </form>
            </div>
        </div>

【讨论】:

  • 谢谢您,我尝试用您提供的内容替换它,但不幸的是我仍然无法让它工作....
【解决方案2】:

确保您的 HTML 具有 .php 文件扩展名,因为您在表单的 action 属性上打印 $_SERVER['PHP_SELF']。如果您使用.html 作为文件扩展名,则不会发生这种情况。我还注意到您似乎在使用 javascript 验证插件(通过 class 属性),请仔细检查提交事件。

【讨论】:

  • 它的名字是正确的,我们在formmail.php下。实际上,我现在可能要删除验证,所以我会看看这是否会改变任何东西。当我至少可以提交表单时将其添加回来大声笑
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-12-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多