2017-08-15 10 views
1

ボタンをクリックすると、データベースからデータが取得され、idに基づいてテキスト領域に表示されます。私のデータベースから取得するための私のサーブレットを介しjquery onclick関数のAjax関数から値を取得するにはどうすればよいですか?

jQueryの

$('#verifyBtn').on("click", function() { 
    var exeOutput = checkOutput(); 
    $("outputArea").html(exeOutput); 
}); 

function checkOutput(){ 
    var exNo = parseInt($('#selectExercise').val()); 
    dataString = "exNo=" + exNo; 
    $("#result").empty(); 
    getOutput(dataString, true); 
} 

function getOutput(dataStr, flag) { 
    $.ajax({ 
     url: "/FYP/WebExerciseByOutput", 
     data: dataStr, 
     success: function (data) { 
     return data; 
     }, 
     error : function (xhr,textStatus,errorThrown){ 
      console.log("Something is wrong with ajax call."+ xhr); 
     } 
    }); 
} 

サーブレット

exercisesModel outputModel = null; 
try { 
    DBConnection db = new DBConnection(); 
    outputModel = db.getExerciseById(request.getParameter("exNo")); 
} catch (Exception e) { 
    // TODO Auto-generated catch block 
    e.printStackTrace(); 
} 
response.getWriter().append(outputModel.getExpOutput()); 

EDIT:クリックすると、私はデータがあると思いますが、私のテキスト領域は、それが表示されていません。

答えて

-1

あなたがreturn data;を使用して即座に応答を返すことはできませんが、代わりにあなたがしてセレクタを渡す成功コールバックが呼び出されたときに、あなたの出力要素に結果を割り当てることができ非同期コールを作っているので:

<script> 
    $('#verifyBtn').on("click", function() { 
     checkOutput("outputArea"); 
    }); 

    function checkOutput(output_selector){ 
     var exNo = parseInt($('#selectExercise').val()); 
     dataString = "exNo=" + exNo; 
     $("#result").empty(); 

     getOutput(dataString, true, output_selector); 
    } 

    function getOutput(dataStr, flag, output_selector) { 
     $.ajax({ 
      url: "/FYP/WebExerciseByOutput", 
      data: dataStr, 
      success: function (data) { 
       $(output_selector).html(data); 
      }, 
      error : function (xhr,textStatus,errorThrown){ 
       console.log("Something is wrong with ajax call."+ xhr); 
      } 
     }); 
    } 
</script> 

注:渡さflagパラメータが使用されていません。

これが役に立ちます。

+0

フラグを削除できますか?私のテキストエリアはデータを表示していません... –

+0

あなたが何を意味するのかわかりませんが、あなたがそれを使用しなかったので、確かにあなたはそれを削除することができました。 –

+0

投稿したリンクを理解しようとしましたが、うまくいきませんでした。 –

-1

ここでこのブロックは:私はあなたが呼び出しの結果を意味推測ことでgetOutputライン

function checkOutput(){ 
var exNo = parseInt($('#selectExercise').val()); 
    dataString = "exNo=" + exNo; 
    $("#result").empty(); 
    return getOutput(dataString, true); 

    } 
-1

returnを追加

function checkOutput(){ 
var exNo = parseInt($('#selectExercise').val()); 
    dataString = "exNo=" + exNo; 
    $("#result").empty(); 
    getOutput(dataString, true); 

    } 

試してみます。成功ハンドラのパラメータでそれを見つけることができます。

success: function (data) { 
    //This is your result from server. 
    console.log(data); 
    return data; 
} 

結果を確認するには、JSコンソールをご覧ください。

関連する問題