formフォームコミットoptionマルチ選択ボックス、バックグラウンド受信処理


时にはページの新しいデータの时に1本1本追加するのが面倒で、操作はとても友好的ではありませんて、何度も选ぶ必要があります.この时、多くのボックスを选ぶのはとても便利で、多くの値をバックグラウンドに伝えて、バックグラウンドの処理はリサイクルして追加するのがもっと便利で、一般的なパラメータは私达にもっと多く选ぶのはformフォームの提出のフォーマットです
formフォームはname値に基づいてバックグラウンドに転送されることを確認します.1つのオブジェクトのため、複数選択したname値と同じように最終的に1つの値だけがバックエンドに転送されます.これは煩わしいです.formフォームのコミットを必要としない限り、すべてのパラメータをつなぎ合わせて転送値を使用します.しかし、ページが変更された場合、jsは変更する必要があります.後続のメンテナンスは友好的ではありません.
最後の結果、バックエンドで受信したオブジェクトは、複数選択ボックスを受信するためにフィールドを追加し、複数選択ボックスの値はformフォームで送信されたルールに従って後に続く.
コードは次のとおりです.
$("body").on("click", "#addSubmitBtn", function () {
        var optTypes = [];
        $("input[name='optType']:checked").each(function (i) {
            optTypes[i] = $(this).val();
        })
        var params = $("#addForm").serialize();
        params+="&optTypes="+optTypes;
        jQuery.ajax({
            type: "POST",
            url: projectName + "/thirdPayType/save",
            data: params,
            traditional: true,
            success: function (msg) {
                msg = JSON.parse(msg);
                if (msg.success) {
                    promptinfo("    ");
                    $("#addWindow #addCancleBtn").click();
                    setTablePageData(currentPage, pageSize);
                } else {
                    promptinfo(msg.message);
                }
            }
        });

    });

formフォームのコミットフォーマットは&フィールド名=フィールド値で、このようなフォーマットで、つなぎ合わせた後、バックグラウンドでstringタイプ","区切られた文字列を取得して再処理します.
public  Map save(PayTypeVO PayType){
		String optTypes = PayType.getOptTypes();
		String[] split = optTypes.split(",");
		for (String a:split){
			PayType.setOptType(Integer.parseInt(a));
			String currentLoginName = sysUserService.getCurrentLoginName();
			PayType.setEditor(currentLoginName);
			int insert = PayTypeService.insert(PayType);
			if(insert<=0){
				throw new CommonException("      ");
			}
		}
		return Maps.newHashMap();
	}

これにより、複数選択の値を1つにして保存することができ、ページのポイント選択も便利になります.
以上
最後に
完璧な人に偽装するのではなく、独特の自分になりなさい.