簡體   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