如何从Ajax函数获取jquery onclick函数的值?

时间:2017-08-15 15:10:55

标签: javascript jquery ajax servlets

我有一个按钮,当我点击它时,它会从我的数据库中获取数据,并根据ID显示在我的文本区域。

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);
      }
  });
}

通过我的servlet从我的数据库中获取。

的Servlet

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());

编辑:点击后,我认为有数据,但我的文字区域没有显示。

3 个答案:

答案 0 :(得分:-1)

这个块在这里:

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

  }

尝试将return添加到getOutput

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

  }

答案 1 :(得分:-1)

通过我想你的意思是调用的结果。您可以在成功处理程序的参数中找到它。

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

查看您的JS控制台以查看结果。

答案 2 :(得分:-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参数。

希望这有帮助。