2016-03-24 20 views
1

マップからデータを取得する方法について知りたい。言語変更を解決する

私は3つのボタンがあります。

Jspページから登録、更新、削除します。

JSPが2つあります。 First.jspとSecond.jsp。

私はsecond.jspにfirst.jspを含めました。 aaa

ボタンはsecond.jspにあります。

At First.jsp。

私は言語変更のためのコンボボックスを持っています。クリックするだけで言語を変更する必要があります。

英語と日本語の2つの言語があります。

言語IDに従ってajaxを使用してAPIクラスを送信します。 id = 1(日本語)、i​​d = 2(英語)の場合

コンボボックス変更機能の内側にajax apiを書きました。以下は私のコードです。

$.ajax({ 
     url : 'aa/idsend', 
     cache : false, 
     type : 'GET', 
     dataType : 'json', 
     contentType : 'application/json; charset=utf-8', 
     data : "lid="+select, 
       success: function(data) { 
       }, 
      }); 

サーバーから次の形式でデータを受信します。

{data = Object {1: "Would you like to register?", 2: "Would you like to update?", 3: "Would you like to delete?"} 

上記のデータはデータベースからのものです。新しいデータをデータベースに追加すると、idは4になります。「何かがある」

ボタンのクリックイベントでこれらのデータを取得する方法を知りたい。 登録ボタンをクリックした場合、登録文のみを受け取りたいです。もう一つはそれに似ています。

+0

上記のAjaxコールのように同じ方法で送信する必要がありますが、登録ボタンをクリックするとURLで登録が送信されるため、サーバー側では送信する内容をサーバーが知ることができます。 –

+0

なぜあなたは 'contentType: 'application/jsonを設定しましたか? charset = utf-8 '、 '?あなたはGET要求をしていますが、要求の本文にはそのタイプを記述する内容はありません。 – Quentin

+0

"サーバーから次の形式のデータを受け取りました。" - JSONで表現した方が楽になるでしょう。 – Quentin

答えて

0

これはGETメソッドでもかまいませんが、POSTが好きです。

function ajaxRequest(dataObj, cbFunc) { 
    $.ajax({ 
     method: 'POST', 
     url: 'aa/idsend', 
     data: dataObj 
    }).done(function(dataFromServer) { 
     cbFunc(dataFromServer); 
    }); 
} 

function useData(dataFS) { 
    //do something with data from server dataFS 
} 

function getCurrentLanguage() { 
    var cL = 'en';//default language 
    //some code to get language from checkboxes 
    return cL 
} 

$('.button').on('click', function(e) { 
    var id = $(this).attr('id'), 
     jsonData = {}, 
     curLang = getCurrentLanguage(); 

    switch (id) { 
     case 'register' : 
      jsonData = {req: 'register', lang: curLang}; 
      break; 
     case 'update' : 
      jsonData = {req: 'update', lang: curLang}; 
      break; 
     case 'delete' : 
      jsonData = {req: 'delete', lang: curLang}; 
      break; 
     default: 
      break; 
    } 

    ajaxRequest(jsonData, useData); 
}); 

次に、aa/idsend serversideスクリプトで、受け取ったreq POST変数に従って送信するデータを準備できます。今では、「登録しますか?」のような質問を返す必要はありません。代わりに、reqの値に従ってアクションを実行し、操作に関する情報を返すことができます - 成功!または失敗!

+0

ご提案いただきありがとうございます。私はあなたの道を試みます。 – user3601532

関連する問題