【问题标题】:The form outputs an empty response and nothing is sent表单输出一个空响应,没有发送任何内容
【发布时间】:2020-02-03 06:05:40
【问题描述】:

让这个表单从网站发送姓名和电话号码是非常有必要的。当我尝试在单击发送按钮后发送数据时 - 我看到一个空的模式窗口而不是响应 - 发送与否。 send.php 文件的内容

<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
    if (isset($_POST['name'])) {$name = $_POST['name'];}
    if (isset($_POST['phone'])) {$phone = $_POST['phone'];}

    $to = "recipient@gmail.com";
    $sendfrom   = "sender@mail.ru";
    $headers  = "From: " . strip_tags($sendfrom) . "\r\n";
    $headers .= "Reply-To: ". strip_tags($sendfrom) . "\r\n";
    $headers .= "MIME-Version: 1.0\r\n";
    $headers .= "Content-Type: text/html;charset=utf-8 \r\n";
    //$subject = "$formData";
    $message = "<br><b>Имя пославшего:</b>". $name ."<br><b>Телефон:</b>". $phone;
    $send = mail ($to, $headers, $message);
    if ($send == 'true')
    {
        echo '<p class="success">Спасибо за отправку вашего сообщения!</p>';
    } else {
        echo '<p class="fail"><b>Ошибка. Сообщение не отправлено!</b></p>';
    }
} else {
    http_response_code(403);
    echo "Попробуйте еще раз";
}
?>

HTML 表单。

<link rel="stylesheet" href="../css/feedback/remodal.css">
<link rel="stylesheet" href="../css/feedback/remodal-default-theme.css">
<a class="mainButton" href="#modal">Callback</a>

<div class="remodal" data-remodal-id="modal" role="dialog" aria-labelledby="modal1Title" aria-describedby="modal1Desc">
 <div class="remodalBorder">
  <button data-remodal-action="close" class="remodal-close" aria-label="Close"></button>
      <form id="form">
        <form action="../php/feedback/send.php" method="POST">
        <p><span class="formlable" style="text-transform: uppercase;">You name</span><br>
            <input type="text" class="putName" name="name"  cols="67%" placeholder="Required field" required>
        <p><span class="formlable" style="text-transform: uppercase;">Phone number</span><br>
            <input name="phone" type="tel" class="putPhone" placeholder="Required field" required>
            <input type="submit" name="submit" class="btn" value="Order a call">
            <input type="hidden" name="formData" value="Application from the site">
        <br><br>
By clicking on the "Order a call" button, you give <a class="mainArticlesTextAgree"  href="../agreement.html">consent to the processing of</a> your personal data.  
    </form>
</div>
</div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
<script src="../js/feedback/remodal.min.js"></script>
<script src="../js/feedback/script.js"></script>

【问题讨论】:

  • &lt;form id="form"&gt; &lt;form action="../php/feedback/send.php" method="POST"&gt;two form action ??
  • 插入时出现此错误
    - 这不应该发生,帮助总比不喜欢更好

标签: javascript php jquery html css


【解决方案1】:

试试这个 HTML 表单

<a class="mainButton" href="#modal">Callback</a>
<div class="remodal" data-remodal-id="modal" role="dialog" aria-labelledby="modal1Title" aria-describedby="modal1Desc">
  <div class="remodalBorder">
    <button data-remodal-action="close" class="remodal-close" aria-label="Close"></button>
    <form id="form" action="../php/feedback/send.php" method="POST">

      <p><span class="formlable" style="text-transform: uppercase;">You name</span><br>
        <input type="text" class="putName" name="name"  cols="67%" placeholder="Required field" required>
      </p>
      <p><span class="formlable" style="text-transform: uppercase;">Phone number</span><br>
        <input name="phone" type="tel" class="putPhone" placeholder="Required field" required>
        <input type="submit" name="submit" class="btn" value="Order a call">
        <input type="hidden" name="formData" value="Application from the site">
      </p>
      <br><br>
      By clicking on the "Order a call" button, you give <a class="mainArticlesTextAgree"  href="../agreement.html">consent to the processing of</a> your personal data.
    </form>
  </div>
</div>

【讨论】:

  • 您应该解释为什么您的答案与 OP 的问题相关。
  • 对此很抱歉,但解释很简单,@Heretic 使用了两个嵌套的表单标签,这是不允许的,并且在第一个表单标签中没有定义任何操作。
【解决方案2】:

您的 HTML 中有两个嵌套表单,如 @Abdulla Nilam 和 HTML5 的工作草案所述,不允许嵌套 HTML 表单:

From the html5 working draft:

4.10.3 表单元素

内容模型

流式内容,但没有表单元素后代。

要使其正常工作,您应该删除第一个表单,因为它没有任何操作或方法:

<link rel="stylesheet" href="../css/feedback/remodal.css">
<link rel="stylesheet" href="../css/feedback/remodal-default-theme.css">
<a class="mainButton" href="#modal">Callback</a>

<div class="remodal" data-remodal-id="modal" role="dialog" aria-labelledby="modal1Title" aria-describedby="modal1Desc">
 <div class="remodalBorder">
  <button data-remodal-action="close" class="remodal-close" aria-label="Close"></button>
        <form id="form" action="../php/feedback/send.php" method="POST">
        <p><span class="formlable" style="text-transform: uppercase;">You name</span><br>
            <input type="text" class="putName" name="name"  cols="67%" placeholder="Required field" required>
        <p><span class="formlable" style="text-transform: uppercase;">Phone number</span><br>
            <input name="phone" type="tel" class="putPhone" placeholder="Required field" required>
            <input type="submit" name="submit" class="btn" value="Order a call">
            <input type="hidden" name="formData" value="Application from the site">
        <br><br>
By clicking on the "Order a call" button, you give <a class="mainArticlesTextAgree"  href="../agreement.html">consent to the processing of</a> your personal data.  
</div>
</div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
<script src="../js/feedback/remodal.min.js"></script>
<script src="../js/feedback/script.js"></script> 

【讨论】:

  • 现在当你点击按钮什么都没有发生
  • 你有没有附加到表单的脚本,ID为form,我会更新我的答案以包含ID以防万一,用新的sn-p试试。
猜你喜欢
  • 2021-02-06
  • 2020-08-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多