1

ユーザーがデータベースに入力する必要がある長いデータ文字列 (スペースを含む) を貼り付ける html のテキスト領域があります。ユーザーは、jquery ajaxポストコールを実行しているjavascript関数を呼び出すボタンのアップロードをクリックします。この ajax 呼び出しは、そのパラメーターを URL に記載されているサーブレットに渡します。ここでの構文がよくわかりません。入力パラメーターとして html テキストエリアからデータを渡す方法を知りたいです。

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);
        }
    });
}
4

3 に答える 3

2

を使用してjQueryいるため、 に直接イベントを置かないでくださいhtml

最初:UploadResult(getElementById('string'.val());する必要がありますUploadResult(document.getElementById('string').value); // missing ')'

2番目:テキストエリアの値を渡していますが、関数で再び取得します。

3番目:間違ったデータをajaxに渡しています。data: "elementValue"する必要がありますdata: { 'elementValue': elementValue}

4番目dataajax を介して渡すときは、 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);
        }
    });

});
于 2012-08-04T04:47:30.613 に答える
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);
        }
    });
}
于 2012-08-04T04:37:08.130 に答える
0

おそらく、このjqueryプラグインを使用できます:

https://www.articlege.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 : サーバーに送信する追加データ。ここでは、送信するデータの識別子を 1 つ設定できます。

data : サーバーに送信するデータ。

pagerequerest : データを送信するページ (aspx、php、jsp、...)。

encodedata : true の場合、すべての特殊文字を UTF-8 エスケープ シーケンスに置き換えてデータをエンコードします。サーバー上でデータをデコードする必要があります。aspx の EG: HttpUtility.UrlDecode データ = (データ);

piecelength : 送信するピースのサイズ。DataUploader はデータを分割してサーバーに送信しています。

これを送信するデータ プロセスが完了すると、「成功」という関数が実行されます。問題が発生し、データの送信を完了できなかった場合、「エラー」機能が発生します。

最後に、サーバーが完了するまでデータを 1 つずつ収集します

于 2015-04-01T15:43:12.243 に答える