无法使用javascript将textarea的值传递给PHP脚本ECHO



我正在尝试使用JavaScript获取textarea的值,以便在不重新加载页面的情况下将其传递给PHP。

请问我在哪里有问题?

这是从文本区域获取值并将其传输到PHP以使用的Javascript

function getValue(s){    
$.post(
"reply.php", 
{      
getTxt: s,
},    
function(data,status){
$("#ReplyTextField").html(data);
}
);
}

这是带有回复按钮的HTML文本区域

<!-- reply popup -->
<div class="sitemodal fade" id="reply-popup">
<div class="sitemodal-dialog">
<!-- siteModal content-->
<div class="sitemodal-content">
<div class="sitemodal-header">
<button type="button" class="close-popup">&times;</button>
<h4 class="sitemodal-title">Reply</h4>
</div>
<div class="sitemodal-body">
<form enctype="multipart/form-data" method="Post" action="<?php echo "reply.php?message=" . $row['id'] . "'"; ?>" name="msgform">
<textarea id="ReplyTextField" placeholder="Give your Reply" name="textarea1"></textarea>
</form>
</div>
<div class="sitemodal-footer">
<button type="button" class="popup-btn reply" id="replyButton" name="sendmsg" onclick="getValue()">Reply</button>
</div>
</div>
</div>
</div>

这是reply.php文件中的php脚本,我正试图将数据传输到

<?php
/*include("functions.php");
include("session.php");
require("connection.php");*/
$getTxt= $_REQUEST['getTxt'];
echo $getTxt;
?>

您的PHP很好。问题出在HTML上。您没有发送在php中引发错误的值。您必须在onclick函数中发送变量,然后它才能工作。

以下是更新后的HTML文件:

function getValue(s){    
$.post("reply.php", 
{getTxt: s,}, function(data,status){
$("#ReplyTextField").html(data);});  
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<p></p><div class="sitemodal fade" id="reply-popup">
<div class="sitemodal-dialog">
<!-- siteModal content-->
<div class="sitemodal-content">
<div class="sitemodal-header">
<button type="button" class="close-popup">&times;</button>
<h4 class="sitemodal-title">Reply</h4>
</div>
<div class="sitemodal-body">
<form enctype="multipart/form-data" method="Post" action="<?php echo `reply.php?message=` . $row['id'] . `'`; ?>" name="msgform">
<textarea id="ReplyTextField" placeholder="Give your Reply" name="textarea1"></textarea>
</form>
</div>
<div class="sitemodal-footer">
<button type="button" class="popup-btn reply" id="replyButton" name="sendmsg" onclick="getValue(document.getElementById('ReplyTextField').value)">Reply</button>
</div>
</div>
</div>
</div>

问题是没有向getValue()函数传递任何参数。我会避免使用HTMLonclick属性,而是使用jQuery事件处理程序:

$('#replyButton').on('click', function() {
var textareaValue = $('#ReplyTextField').val();
getValue(textareaValue);
};

您还应该使用.val()方法来设置文本区域的值。https://api.jquery.com/on/https://api.jquery.com/val/