Arg,这太烦人了!
我有一张带有textarea的表格。在提交时,我使用一块PHP将表单的数据发送到我的电子邮件地址。其他数据发送正常(输入)但它不发送textarea!
这是de PHP:
parse_str($_POST['stuff']);
mail("name@myemailadress.nl", "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 :(得分:1)
试试这个
<?php
mail("name@myemailadress.nl", "Website formulier", $_POST['name'], $_POST['email'], $_POST['comments']);
?>
答案 1 :(得分:0)
根据具体情况,我怀疑您在textarea上使用了像CKEdit或TinyMCE这样的富文本编辑器。
如果是这种情况,您应该知道这些编辑器不会直接影响textarea的文本,您必须调用特殊的编辑器特定方法来更新它的内容。在表单提交时自动调用此方法,但是对于通过ajax序列化和提交表单,它并不是那么简单。
如果是这种情况,请告诉我您正在使用的编辑器,我可以告诉您如何正确准备textarea以进行序列化。
答案 2 :(得分: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']
答案 3 :(得分: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("aa@ss.com", "Website formulier", "$name, $email, $comments");
?>
您需要在双引号中添加整个内容。我测试了它,它工作正常。