13

次のようにアクセスできる入力フィールドを持つフォームがあります

var algorithm = document.forms["algoForm"]["algorithm"].value;
var input = document.forms["algoForm"]["input"].value;

以前の電話は

document.forms["algoForm"].submit();

そしてフォームは

<form name="algoForm" method="post" action="run.do">

すべて正常に実行さ
れるので、同じページで Java コードから返されたデータを使用できるように、それを ajax 呼び出しに変換したいと考えました。だから私は何かを使った

        var algorithm = document.forms["algoForm"]["algorithm"].value;
        var input = document.forms["algoForm"]["input"].value;
        var data = 'algorithm = ' + algorithm + '&input = ' + input;


    $.ajax(
            {
                url: "run.do",
                type: "POST",
                data: data,
                success: onSuccess(tableData) 
                { //line 75
                    alert(tableData);
                }

            }
        );

ただし、上記のコードは実行されません。実行するのを手伝ってください

4

5 に答える 5

14

serializejQuery を使用して からデータを取得しform、jQuery のajax関数を使用してデータをサーバーに送信しましょう。

var data = $("form[name=algoForm]").serialize();
$.ajax({
    url: "run.do",
    type: "POST",
    data: data,
    success: function(tableData){
        alert(tableData);
    }
});
于 2012-06-18T12:36:35.320 に答える
5

dataリテラルオブジェクトが必要なので、次が必要です。

var data = {
    'algorithm': algorithm,
    'input': input
};
于 2012-06-18T12:15:29.340 に答える
3

すべてのパラメーター値を取得して個別に送信する代わりに(以下のコードを使用してサーバー側でも実行できます)、次を使用します。

var $form = $("#divId").closest('form');
    data = $form.serializeArray();

    jqxhr = $.post("SERVLET_URL', data )
        .success(function() {
            if(jqxhr.responseText != ""){
                //on response
            }
        });
    }

divIdこのフォームを含むdivのIDです。

このコードは、すべてのフォームパラメータをサーブレットに送信します。これで、サーブレットでrequest.getParameterを使用して、サーブレットのすべての個々のフィールド値を取得できます。

上記のjquerypostをjqueryajaxに簡単に変換できます。

お役に立てれば :)

于 2012-06-18T12:33:13.350 に答える
1

よくわからないけど、これはよく動く

    var algorithm = document.forms["algoForm"]["algorithm"].value;
    var input = document.forms["algoForm"]["input"].value;

    $.post('run.do', {  
            algorithm  : algorithm,
            input      : input
        }, function(data) {                  
            alert(data);
        }
    );
于 2012-06-18T13:36:27.360 に答える