如何将值从jQuery菜单传递到Play框架

How to pass value from jQuery menu to Play framework

本文关键字:Play 框架 菜单 jQuery      更新时间:2023-09-26

我最近开始使用play框架。我正在尝试将jQuery与我的模板一起使用,我不知道如何将值从jQuery传递给play。这是我的控制器:

public static Result createProduct() {
    String usernameSes = session("username");
    String name = newProduct.bindFromRequest().get().name;
    String desc = newProduct.bindFromRequest().get().desc;
    Double price = newProduct.bindFromRequest().get().price;
    **String category = newProduct.bindFromRequest().get.category;**
    Product.create(name, desc, price);
    return ok(showProduct.render(usernameSes, name, desc, price));

这是我的jQuery:

        <script>
            $(function() {
            $( "#category" ).selectmenu(); 
            });
         </script>
        <style>
            fieldset {
            border: 0;
            }
        label {
            display: block;
            margin: 30px 0 0 0;
        }
        select {
            width: 200px;
        }
        .overflow {
            height: 200px;
        }
         </style>
        <body>
        <div class="demo">
        <form action="#">
        <fieldset>
        <label for="category">Kategorija</label>
        <select name="category" id="cathegory">
            <option selected="selected">Vozila</option>
            <option>Nekretnine</option>
            <option>Mobilni uređaji</option>
            <option>Kompjuteri</option>
            <option>Tehnika</option>
            <option>Nakit i satovi</option>
            <option>Moj dom</option>
            <option>Biznis i industrija</option>
            <option>Životinje</option>
            <option>Odjeća i obuća</option>
            <option>Ostale kategorije</option>
        </select>

        </fieldset>
        </form>

提前感谢您的回答!

您只需要将路由文件上的地址链接到控制器上的方法(请参阅此处)。

那么表单中的action应该使用该地址。使用Play模板,您甚至可以使用语法

<form action="@routes.YourControllerClass.createProduct()">

然后,当表单将被提交时,createProduct()方法将处理它

希望能有所帮助。