Имам текстова област в html, в която потребителят щепоставете дълъг набор от данни (с интервали), които трябва да бъдат въведени в базата данни. Потребителят ще кликне върху бутон за качване, който ще се обади на javascript функция, в която аз съм дава jquery ajax пост разговор. Това повикване ajax ще премине този параметър към сървета, който е посочен в URL адреса. Не съм сигурен за синтаксиса тук, искам да знам как да предам данни от 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);
}
});
}
Отговори:
2 за отговор № 1Имате цитати около променливата си. Ако премахнете котировките и предполагам, че вашият сървър очаква да е така, трябва да форматирате данните като такива.
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);
}
});
}
редактиране:
Както споменава Рикардо Ломан, вие също се опитахте да предадете стойността във вашата функция, но след това опитайте отново да я получите в рамките на функцията. В този случай трябва да направите следното:
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);
}
});
}
2 за отговор № 2
Вие използвате jQuery
, така че, моля, не направете събитието директно на html
.
първи: UploadResult(getElementById("string".val());
би трябвало UploadResult(document.getElementById("string").value); // missing ")"
.
втори: Вие предавате стойността на textarea, но по вашата функция ще я получите отново.
трета: Предавате грешни данни на Ajax. data: "elementValue"
би трябвало data: { "elementValue": elementValue}
четвърти: Когато минавате data
докато не се налага да използвате ?
когато е настроено a 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);
}
});
});
0 за отговор № 3
Може би можете да използвате тази 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>
След като Initialize DataUploader
jQuery.ajaxdatauploader(
{
additional:,
data:,
pagerequest:,
piecelenght:,
encodedata:,
success: function (datauploader, status){
}
error: function (req, status, error) {
}
}
);
допълнителен: Допълнителни данни, които искате да изпратите на сървъра, тук можете да зададете един идентификатор кои данни изпращат.
данни: Данни за изпращане до сървъра.
pagerequerest: Страница за изпращане на данните (aspx, php, jsp, ...).
encodedata: Ако е вярно, то кодира данните, като замени всички специални знаци с техните UTF-8 аварийни последователности. На сървъра ще трябва да декодира данните. EG в aspx: HttpUtility.UrlDecode data = (данни);
piecelenght: Размер на парчетата за изпращане. DataUploader разделя данните на парчета, след което изпраща на сървъра.
Когато процесът на изпращане на данните завърши, процесът ще отнеме функцията: "успех". Ако имаше проблем и не можа да завърши изпращането на данни, това ще доведе до функцията "грешка".
Накрая сървърът събира данните по парче, докато бъде завършено