我在html中有一个文本区域,用户将粘贴一长串数据(带有空格),这些数据需要输入到数据库中。用户将单击一个按钮upload,该按钮将调用javascript函数,在其中我将发出jquery调用。这个ajax调用将把这个参数传递给url中提到的servlet。我不确定这里的语法,我想知道如何将数据作为输入参数从html textarea传递。
<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);
}
});
}
发布于 2012-08-03 20:37:08
你的变量周围有引号。如果删除引号,并且我假设您的服务器期望json,那么您需要将数据格式化为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所提到的,您也尝试将值传递到您的函数中,然后尝试在函数中再次得到它。在这种情况下,您应该执行以下操作:
<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);
}
});
}
发布于 2012-08-03 20:47:30
您正在使用jQuery
,所以请不要将您的事件直接放在html
上。
First:UploadResult(getElementById('string'.val());
应该是UploadResult(document.getElementById('string').value); // missing ')'
。
第二个:您正在传递textarea的值,但是在您的函数上,您将再次得到它。
第三:您将错误的数据传递给ajax。data: "elementValue"
应该是data: { 'elementValue': elementValue}
第四:当您通过ajax传递data
时,在设置url
时不需要使用?
,所以url: "servleturl.irpt?"
应该是url: "servleturl.irpt"
html
<div>
<textarea id ="string" rows = "20" cols = "120" > Please enter the data </textarea>
<input type ="button" value ="upload" id="submit"/>
</div>
js
$('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);
}
});
});
发布于 2015-04-01 07:43:12
也许您可以使用这个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:Additional数据,在这里您可以设置一个数据要发送的标识符。
Data :要发送到服务器的数据。
pagerequerest:页面发送数据(aspx,php,jsp,.)。
encodedata:如果为真,则通过用UTF-8转义序列替换所有特殊字符来对数据进行编码。在服务器上必须对数据进行解码。例如在aspx中: HttpUtility.UrlDecode数据=(数据);
piecelenght:大小的件要发送。DataUploader将数据分成几个部分,然后发送到服务器。
当数据处理完成发送时,它将接受以下函数:“成功”。如果出现问题,无法完成数据的发送,将导致“错误”函数。
最后,服务器逐片收集数据,直到完成为止。
https://stackoverflow.com/questions/11805920
复制