2013-07-10 52 views
0

Arg,這太惱人了!Textarea不發送提交

我已經有了一個帶有textarea的窗體。在提交時,我使用一段PHP將表單的數據發送到我的電子郵件地址。其他數據發送正常(輸入),但它不發送文本區!

這是德PHP:

parse_str($_POST['stuff']); 
mail("[email protected]", "Website formulier", $name, $email, $comments); 

這是代碼:

<form class="form" id="form" action="" method="POST" > 
    <p class="name"> 
     <input type="text" name="name" id="name" placeholder="NAAM" > 
    </p> 
    <p class="email"> 
     <input type="text" name="email" id="email" placeholder="E-MAILADRES" > 
    </p>  
    <p class="text"> 
     <textarea name="comments" id="bericht" placeholder="BERICHT" ></textarea> 
    </p> 
    <p class="submit"> 
     <input type="submit" id="versturen_knop" class="submitBtn" value="VERSTUREN" > 
    </p> 
</form> 

這是改變提交按鈕的狀態持續3秒鐘碼(消息發送確認)和觸發器PHP

$(document).ready(function(){ 
    $('#form').submit(function(event){ 
     $('.submitBtn').attr('value','BERICHT VERSTUURD!'); 
     setTimeout(function(){ 
      $('.submitBtn').attr('value','VERSTUREN'); 
     }, 2000); 
     var stuff = $('#form').serialize(); 
     jQuery.ajax({ 
      type: 'POST', 
      url: 'mail.php', 
      data:{ 'stuff':stuff, } 
     }); 
     //Prevents form submission 
     return false;   
    }); 
}); 

我希望你能幫忙!

+0

那麼你在哪裏收到你的textarea內容?顯示一些代碼。 –

+0

您是否期望文本區域內容以PHP中的$ comments的形式自動提供? – mishka

+1

teaxtarea在哪裏! – Othman

回答

0

試試這個代碼,它的工作原理檢索,

<script src="http://code.jquery.com/jquery-1.9.1.js"></script> 
<form class="form" id="form" action="" method="POST" > 

      <p class="name"> 
      <input type="text" name="name" id="name" placeholder="NAAM" > 
      </p> 

      <p class="email"> 
      <input type="text" name="email" id="email" placeholder="E-MAILADRES" > 
      </p>  

      <p class="text"> 
      <textarea name="comments" id="comments" placeholder="BERICHT" ></textarea> 
      </p> 

      <p class="submit"> 
      <input type="submit" id="versturen_knop" class="submitBtn" value="VERSTUREN" > 
      </p> 
      </form> 
     <script>  

      $(document).ready(function(){ 
$('#form').submit(function(event){ 
    $('.submitBtn').attr('value','BERICHT VERSTUURD!'); 

    setTimeout(function(){ 
     $('.submitBtn').attr('value','VERSTUREN'); 
    }, 2000); 

    //var stuff = $('#form').serialize(); 

    jQuery.ajax({ 
     type: 'POST', 
     url: 'mail.php', 
     data : $('#form').serialize(), 
     dataType: "json" 
    }); 

    //Prevents form submission 
    return false;   
}); 
}); 

</script> 



<?php 
parse_str($_POST['stuff']); 

mail("[email protected]", "Website formulier", "$name, $email, $comments"); 



?> 

您需要用雙引號添加全部內容。我測試過了,它工作正常。

+0

YEAH !!這工作非常好! – user1737979

+0

很高興你有它! – 2013-07-10 09:14:08

1

試試這個

<?php 
    mail("[email protected]", "Website formulier", $_POST['name'], $_POST['email'], $_POST['comments']); 
?> 
+0

這不會幫助。正如你應該注意到的那樣,他正在使用名爲parse_str()的荒謬命名,它將所有數組內容轉儲到本地名稱空間變量中。 –

+0

更正,查詢字符串格式的內容,而不是數組內容。 –

+0

那麼,我的PHP應該如何能夠發送「評論」以及「名稱」和「電子郵件」? – user1737979

0

根據具體情況,我懷疑你正在使用你的textarea的富文本編輯器,比如CKEdit或TinyMCE的。

如果是這種情況,你應該知道,這些編輯器不直接影響textarea的文本,你必須調用一個特殊的編輯器專用的方法來更新它的內容。這個方法在表單提交時被自動調用,但是通過ajax序列化和提交表單並不那麼簡單。

如果是這種情況,請告訴我您正在使用哪個編輯器,我可以告訴您如何正確準備textarea進行序列化。

+0

我正在使用TextWrangler ...希望幫助!? – user1737979

+0

@ user1737979不完全。 TextWrangler是您編輯源代碼的程序,對不對?我指的是任何JS文本插件,你已經附加到textarea,使編輯評論更容易。有一個嗎? –

0

更改以下行

data : { 'stuff':stuff, } 

data : stuff 

,或者您可以使用

data : $('#form').serialize(); 

或者,你可以嘗試

data : { 
    'name' : $('#name').val(), 
    'email' : $('#email').val(), 
    'comments' : $('#bericht').val() 
} 

,並使用

$_POST['name'] 
$_POST['email'] 
$_POST['comments'] 
+0

Quote:'其他數據發送正常'。 –

+0

我嘗試過這些可能性,但都沒有工作。 – user1737979