繁体   English   中英

我的php联系人表单中的文本区域不起作用(发送)

[英]Text area in my php contact form won't work (send)

在尝试一些不同的教程和论坛主题之后,我已经尝试了一段时间。 看起来很简单,但我只是无法从textarea获取任何数据。 输入类型“名称”和“邮件”没问题,可以正常工作。 我将在下面粘贴我的PHP编码和表单。 任何帮助将非常感激。 谢谢。

<section id="forma" >
    <div class="container">
      <div class="row">
        <div class="col-md-12 text-center">
          <form action="send.php" method="post" enctype="multipart/form-data" id="form_page">
            <input type="text" name="name" placeholder="Name" required>
            <input type="email" name="mail" placeholder="E-mail" required>
           <textarea name="comment" id="comment" style="margin: 0px 15px -33px 0px; width: 307px; height: 66px;"></textarea><br>
            <label class="uploadbutton">
            <div class="button" ></div>
            <div class='input'></div>
            <input type="file" name="file" onchange="this.previousSibling.previousSibling.innerHTML = this.value"/>
            </label>
            <button type="submit" class="btn btn2"></button>
          </form>
        </div>
      </div>
    </div>
</section>

p

<?php
    require_once('phpmailer/PHPMailerAutoload.php');
    $mail = new PHPMailer;
    $mail->CharSet = 'utf-8';

    $name = $_POST['name'];
    $phone = $_POST['phone'];
    $email = $_POST['mail'];
    $text = $_POST['message'];
    $comment = $_POST['comment'];
    echo $comment;

    $mail->SMTPDebug = 3;                     

    //$mail->isSMTP();                        
    //$mail->Host = '';
    //$mail->SMTPAuth = true;                           
    //$mail->Username = '';
    //$mail->Password = '';
    //$mail->SMTPSecure = 'ssl';                        
    //$mail->Port = 587;

    $mail->setFrom('');
    $mail->addAddress('');  
    //$mail->addAddress('');         
    //$mail->addReplyTo('', 'Information');
    //$mail->addCC('cc@example.com');
    //$mail->addBCC('bcc@example.com');
    //$mail->addAttachment('/var/tmp/file.tar.gz');   
    $mail->isHTML(true);
    if(isset($_FILES['file']))
      $mail->addAttachment($_FILES['file']['tmp_name'], $_FILES['file']['name']);    // Optional name$mail->isHTML(true);                            
    $mail->Subject = '';
    $mail->Body    = '' .$name . ' ,' .$comment. '<br>: ' .$email.'<br>' .$text;
    $mail->AltBody = '';

if(!$mail->send()) {
    echo 'Error';
} else {
    header('location: thank-you.html');
}

?>

JS

 <script>

     $ ('form').submit(function(event) {

        event.preventDefault();

        var data = new FormData();
 data.append('name', $(this).find('input[name=\'name\']').val());
data.append('phone', $(this).find('input[name=\'phone\']').val());
data.append('mail', $(this).find('input[name=\'mail\']').val());
data.append('comment',$('#comment').val());
 if($(this).attr('id') == 'form_page')
  data.append('file', $(this).find('input[name=\'file\']')[0].files[0])

        $.ajax({

          type: "POST",
          url: "send.php",
          data: data,
          cache: false,
          contentType: false,
          processData: false,
          success: (function(data) {
       $(this).find("input").val("");
          $('#modal').modal('hide');
          $('#modal1').modal('show');
          $("form").trigger("reset");
          })



    });
       return false;
    });

    </script>

你的错是在PHP代码:

更换:

$comment = $_POST['comment']);

与:

$comment = $_POST['comment'];

删除多余的支架

在js文件中用$('#comment')。val()替换$(this).find('input [name = \\'comment \\']')。val(),因为您使用的是textarea输入选择器,为获得textarea价值而工作

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM