我在html中有一个文本区域,用户将在其中粘贴需要输入数据库的长字符串数据(带空格)。用户将点击一个按钮上传,它将调用一个javascript函数,我在其中给出一个jquery ajax post调用。此ajax调用将该参数传递给url中提到的servlet。我不确定这里的语法,我想知道如何从html textarea传递数据作为输入参数。
HTML :
<textarea id = "string" rows = "20" cols = "120" > Please enter the data </textarea>
<input type = "button" value = "upload" onclick= "UploadResult(getElementById('string'.val());" />
的Javascript :
function UploadResult()
{
var elementValue = $("#string").val();
$.ajax({
type: "POST",
url: "servleturl.irpt?",
data: "elementValue",
success: function(msg){
alert( "Data Saved: " + msg );
alert(elementValue);
}
});
}
答案 0 :(得分:2)
你的变量附近有引号。如果你删除引号,我认为你的服务器期望json,所以你需要格式化数据。
function UploadResult()
{
var elementValue = $("#string").val();
$.ajax({
type: "POST",
url: "servleturl.irpt",
//data: "elementValue",
data: {
'variableNameExpectedByServer': elementValue
},
success: function(msg){
alert( "Data Saved: " + msg );
alert(elementValue);
}
});
}
修改强>:
正如Ricardo Lohmann所提到的,你也尝试将值传递给你的函数,然后尝试在函数中再次获取它。在这种情况下,您应该执行以下操作:
<强> HTML 强>:
<input type="button" value="upload"
onclick="UploadResult(document.getElementByID('string').value);" />
<强>的Javascript 强>:
function UploadResult(result)
{
$.ajax({
type: "POST",
url: "servleturl.irpt",
data: {
'variableNameExpectedByServer': result
},
success: function(msg){
alert( "Data Saved: " + msg );
alert(elementValue);
}
});
}
答案 1 :(得分:2)
您使用的是jQuery
,所以请不要直接在html
上添加活动。
首先:UploadResult(getElementById('string'.val());
应为UploadResult(document.getElementById('string').value); // missing ')'
。
第二次:你传递的是textarea的值,但是在你的功能上你会再次得到它。
第三次:您将错误的数据传递给ajax。 data: "elementValue"
应为data: { 'elementValue': elementValue}
第四:当您通过data
thrue ajax时,设置?
时无需使用url
,因此url: "servleturl.irpt?"
应该url: "servleturl.irpt"
是<div>
<textarea id ="string" rows = "20" cols = "120" > Please enter the data </textarea>
<input type ="button" value ="upload" id="submit"/>
</div>
<强> HTML 强>
$('div').on('click', '#submit', function() {
var elementValue = $("#string").val();
$.ajax({
type: "POST",
url: "servleturl.irpt",
data: {
'elementValue': elementValue
},
success: function(msg) {
alert( "Data Saved: " + msg );
alert(elementValue);
}
});
});
<强> JS 强>
{{1}}
答案 2 :(得分:0)
也许你可以使用这个jquery插件:
https://www.articlage.com/adrianillo/article/DataUploader
您可以轻松上传大量文字。
首先从以下网址下载脚本:https://github.com/adrianillo/datauploader
添加对JQuery和DataUploader脚本的引用
<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
<script src="js/ajaxdatauploader.js"></script>
初始化DataUploader后
jQuery.ajaxdatauploader(
{
additional:,
data:,
pagerequest:,
piecelenght:,
encodedata:,
success: function (datauploader, status){
}
error: function (req, status, error) {
}
}
);
aditional :您要发送到服务器的其他数据,您可以在此设置一个标识符,用于发送数据。
数据:要发送到服务器的数据。
pagerequerest :发送数据的页面(aspx,php,jsp,...)。
encodedata :如果为true,则通过将所有特殊字符替换为其UTF-8转义序列来对数据进行编码。在服务器上将必须解码数据。 asp in asp:HttpUtility.UrlDecode data =(data);
piecelenght :要发送的作品的大小。 DataUploader将数据分成多个部分,然后发送到服务器。
当发送完成的数据处理完成后,它将采用以下功能:&#39;成功&#39;如果出现问题且无法完成数据发送,则会导致“错误”错误。功能
最后,服务器逐个收集数据直到完成