1

这是我第一次使用 Play 框架,我正在尝试设计一个应用程序来帮助管理货架上物品的排列。我在可放置的 div 上放置了背景图像以显示机架。我想要做的是,在 drop 函数上将图像位置存储在数据库中,以便下次输入时可以检索它并将图像放置在同一位置。我通过

停止:函数(事件,用户界面){

    // Show dropped position.
    var Stoppos = $(this).position();
    $(this).addClass("postn");
    var pos = $("div#stop").text("STOP: \nLeft: "+ Stoppos.left + "\nTop: " + Stoppos.top);

}

显示下降位置

谁能告诉我 1)我应该如何在 Ajax 调用中传递数据 2)如何在 Applications 方法中处理它。

提前谢谢。

4

3 回答 3

1

设法暂停 ajax 调用和 Applications 方法:

//AJAX
    $.ajax({
        type: "POST",
          url: "@routes.Application.myMethod()",
          data: {
              Left:Stoppos.left,
              Top:Stoppos.top
          },
          dataType:"Json",
          success: function(data) {
                 alert("success");
               },
                error :function(){
                    alert("error");

                }


//Applications

    public static Result myMethod() {
        Map<String, String[]> parameters = request().body().asFormUrlEncoded();
        String top = parameters.get("Top")[0];
        String left = parameters.get("Left")[0];
        System.out.println(top+" "+left);
        return ok(Json.toJson(1));
}

一旦我得到它,我会将 ebean 插入发布到数据库中。

于 2013-07-08T12:31:32.897 回答
0

在您的 javascript 成功时,您必须再次调用您的 JS 方法,也许可以为您的所有 JS 文件尝试此操作(使用 jquery 时会更好)

   !function( $ ) {

     function nameFunction() {
    ...
 }
    nameFunction()
    }( jQuery )

我认为您的 javascript 未被调用,请尝试使用 chrome 中的 javascript 调试器并在您的 js 代码中添加一个断点 id 不通过断点您的代码不会被调用,所以当您成功时请调用“nameFunction()”。如果你想使用 javascript,你必须使用 javascript 调试器!!!!!!

于 2013-07-09T07:26:26.967 回答
0

在 playframework 2 中,您可以通过 ajax 示例直接调用控制器操作:

jsRoutes.controllers.YourController.YourMethod().ajax({
            type: "POST",
            url: "url",
            data: yourData,
            dataType: 'text',
            contentType:'application/json',
            success: function(msg){alert(msg)}

在控制器中:

   @BodyParser.Of( play.mvc.BodyParser.Json.class )
    public static Result retrievePlaces(){
response().setContentType( "application/json" );
JsonNode json = request().body().as(JsonNode.class);
JsonNode jsonRequest = request().body().asJson();
String var1= jsonRequest.findPath("yourVar").getTextValue();
String var2= jsonRequest.findPath("YourVae").getTextValue();
        ObjectNode result = Json.newObject();
result.put("status", "OK");
return ok(result);
    }
于 2013-07-08T12:41:15.240 回答