通过 Ajax 将 Textarea 字段传递给 php

Posted

技术标签:

【中文标题】通过 Ajax 将 Textarea 字段传递给 php【英文标题】:Passing Textarea field through Ajax to php 【发布时间】:2014-02-02 08:58:22 【问题描述】:

我正在通过 Ajax 发送联系表单,所有值都可以正常发送和处理,但由于某种原因,消息内容没有从 textarea 字段传递,我尝试过 var note = $("textarea#note").text();var note = $("textarea#note").val(); 我也试过尝试了$("$note"),但仍然无济于事。我确定文本区域的值正在被拾取,但它只是没有传入字符串。

这是我的代码:

$('#formsend').click(function()

var detail = $("input#subject").val();
var note = $("textarea#note").text();

var dataString = $('form').serialize();

$.ajax(
  type: "POST",
  url: "processmail.php",
  data: dataString,
  success: function() 
    $('#form').html("<div id='message'></div>");
    $('#message').html("<h2>Message Submitted.</h2>")
    .append("<p>Thank you for contacting me, I will be in touch soon.</p>")
    .hide()
    .fadeIn(1500);
  
);
return false;

); //end form ajax

但我尝试将数据传递为:

data:
      'detail': detail
      'note': note
      

这两种方法似乎都适用于所有字段,但它们不会将文本区域的值传递给我的 php 文件。

有什么想法吗?

【问题讨论】:

简单地使用$("#note").val() - 如果你有像&lt;textarea id="note"&gt;..&lt;/textarea&gt;这样的文本区域,这应该可以工作 【参考方案1】:

试试这个,你可以通过这个$("$note")获取内容,你应该使用$("#note")

$('#formsend').click(function()

var detail = $("input#subject").val();
var note = $("#note").text();

var dataString = $('form').serialize();

$.ajax(
  type: "POST",
  url: "processmail.php",
  data: dataString,
  success: function() 
    $('#form').html("<div id='message'></div>");
    $('#message').html("<h2>Message Submitted.</h2>")
    .append("<p>Thank you for contacting me, I will be in touch soon.</p>")
    .hide()
    .fadeIn(1500);
  
);
return false;

); 

【讨论】:

【参考方案2】:

只需使用 $("#note").val() - 如果您有 id 为 note 的 textarea,这应该可以工作

<textarea id="note">..</textarea>

js:

$('#formsend').click(function()


var detail = $("input#subject").val();
var note = $("#note").val();

$.ajax(
  type: "POST",
  url: "processmail.php",
  data: detail: detail, note: note,
  success: function() 
    $('#form').html("<div id='message'></div>");
    $('#message').html("<h2>Message Submitted.</h2>")
    .append("<p>Thank you for contacting me, I will be in touch soon.</p>")
    .hide()
    .fadeIn(1500);
  
);
return false;

);

【讨论】:

以上是关于通过 Ajax 将 Textarea 字段传递给 php的主要内容,如果未能解决你的问题,请参考以下文章

如何将模型字段传递给 JsonResponse 对象

使用 AJAX 将文本框中的值传递给控制器​​操作

ISO8859_1中的Jquery AJAX传递变量

来自ckeditor textarea的ajax表单提交值之后没有通过邮件发送

从 Django 中的 JsonResponse 中提取字段值并将其传递给 Ajax Jquery

jquery ajax上的Textarea没有发送到mysql,只是输入字段