0

おやすみなさい。

個人的には、「マップ」をシミュレートする関数があります。ここで、「キー」メニュー項目および「値」メニューサブ項目として追加します。

この機能は以下で見ることができます

var key;
var value;
var mapaDeListas = new Array();
$(".conteudoMenu a").click(function(){
   key = $(this).parent(".conteudoMenu").parent("li").find(".itemMenu").attr("id");
   value = $(this).attr("id"); 
   Processar();
   console.log(mapaDeListas);
});

var Processar = function() {
    if (mapaDeListas[key] && $.inArray(value, mapaDeListas[key]) == -1 || mapaDeListas[key] && $.inArray(value, mapaDeListas[key]) != -1) {
        // Checks if the key already exists from the "key" and if the value of "value" is present in the array
       if (mapaDeListas[key].indexOf(value) == -1){
            mapaDeListas[key].push(value);
        }
    }
    else {
        // Creates the array according to the value of the "key" and adds the value of "value"
        mapaDeListas[key] = new Array();
        mapaDeListas[key].push(value);
    }
}

私が知りたいのは、Ajaxのこの関数の値をサーブレットに渡し、それらを介してJavaでマップをアセンブルする方法です。

この関数の値を以下のようにAjax経由で送信しようとしましたが、役に立ちませんでした

function loadQuery(){
    if(inputMenu.length > 0){
    $.ajax({
        url: "assembles-query",
        type: "POST",
        data: {
            "mapaDeListas[]" : mapaDeListas
        },
        //dataType: "json",
        error:function(){
            alert("ERRO MENU")
        },
        success:function(responseText){
            $("textarea[id=assembleQuery]").text(responseText);
        }
    });
    }
}

サーブレットで、次のように結果を取得しようとしました。String [] mapaDeListas = request.getParameterValues( "mapaDeListas []");

ただし、printを送信すると、結果は常にnullを返します。

誰かが私がどこが間違っているのか、そしてこれらの値を正しく渡すために何をすべきか教えてくれませんか?すでに皆の助けに感謝しているので。

以下に、結果がどのように保存されるかを示します。 http://bit.ly/V9oHsg

4

1 に答える 1

0

これはjQuery1.4であると想定しています-次に、次のtraditional: trueパラメータを使用します$.ajax()

または、グローバルに設定します:(ドキュメントから$.param()

jQuery 1.4以降、この$.param()メソッドはディープオブジェクトを再帰的にシリアル化して、PHPやRubyonRailsなどの最新のスクリプト言語やフレームワークに対応します。を設定すると、この機能をグローバルに無効にできますjQuery.ajaxSettings.traditional = true;

于 2013-02-11T07:50:31.370 に答える