Javascript 浮动 Symfony 部分

发布于 2024-12-04 16:02:57 字数 276 浏览 0 评论 0原文

我必须为 Web 应用程序实现一项功能,该功能提供了一种在数千个元素之间选择元素的简单方法。 现在我有一个表单中的选择输入,用户可以从数据库中的所有对象中选择对象的父元素。但选择这种方式的因素太多了。

另一方面,我开发了部分列表和列表。过滤器,对于这个对象,所以我的问题是:

有没有某种方法可以实现类似的东西:一个Javascript,它创建一个弹出窗口或类似的内部部分,然后用户可以使用过滤器和分页中的过滤器和分页来选择一个父级部分并将所选的提交到原始表格?

非常感谢您抽出时间! :D

I have to implement a functionality for a web application that provides an easy way to select an element between thousands of them.
Now i have a select input in a form where the user selects the parent element of an object, from a pull of all objects in database. But there are too much elements to select this way.

On the other hand i've developed a partial of list & filter, for this object, so my question is:

Is there some way to implement something like: a Javascript that creates a pop-up or similar with the partial inside, then the user can just select one parent using the filters and pagination in the partial and submit the selected one to the original form?

Thank you very much for your time! :D

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

表情可笑 2024-12-11 16:02:57

您可以调用一个操作来呈现您想要的部分。要从操作中渲染部分内容,只需使用:

return $this->renderPartial('module/partial', array('var_name' => $var_value));

You can call an action that renders the partial you want. To render a partial from an action just use:

return $this->renderPartial('module/partial', array('var_name' => $var_value));
池予 2024-12-11 16:02:57

如果您喜欢 jQuery,我建议使用 jQuery 工具覆盖层,可以在此处找到:

jQuery 工具

该库是文档齐全且易于使用,因为它是以 jQuery 插件的形式编写的。简单地说 - 它能够渲染漂亮的弹出窗口 - 不是在我个人觉得烦人的新窗口中,而是在覆盖的 div 中。

您可以在此类弹出窗口中放置任何内容,例如表单或您的部分内容。然后您可以使用 jQuery 捕获表单的值,例如:

$("#your-form").submit(function () {
    var selectedItemId = $("#your-select").val();
    // Do something with the id
    return false;
}); 

如果您想了解更多信息,请告诉我。

If you like jQuery, I recommend using the jQuery Tools overlay, which can be found here:

jQuery Tools

The library is well documented and easy to use as it's written in form of a jQuery plugin. Simply speaking - it is capable of rendering nice looking popups - not in a new window which I personally find annoying, but in overlayed divs.

You can put anything in such popup, for example a form, or your partial. Then you can catch the value of the form using jQuery, for example:

$("#your-form").submit(function () {
    var selectedItemId = $("#your-select").val();
    // Do something with the id
    return false;
}); 

If you'd like more info please let me know.

不疑不惑不回忆 2024-12-11 16:02:57

我最终是这样解决的:
我在这个html上使用了这个javascript

    <script type="text/javascript">//script para abrir el selector de ud.org. sup.
    $(document).ready(function(){     
            $(".openDialog").click(function(e){
                e.preventDefault();
                //Get the screen height and width                    
                var maskHeight = $(document).height();
                var maskWidth = $(window).width();
                $('.None_background').css("style","background-color:#eee");
                $('#mask').css({'width':maskWidth,'height':maskHeight});
                $('#mask').css('top',0);
                $('#mask').css('left',0);
                //$('#mask').fadeIn(1000);    
                $('#mask').fadeTo("slow",0.5);
                var winH = $(window).height();
                var winW = $(window).width();

                //Set the popup window to center
                $("#dialog").css('top',  winH/4-$(id).height()/4);
                $("#dialog").css('left', winW/4-$(id).width()/4);

                //transition effect
                $("#dialog").fadeIn(250); 


            });
            $('#mask').click(function () {
                $(this).fadeOut();
                $('.window').fadeOut(500);
            });
            $('.window .close').click(function(){
                $('#mask').fadeOut();
                $('.window').fadeOut(500);
                //saving the selected unit in the form
                var slct = document.getElementById('parent_unit');
                var text= slct.options[slct.selectedIndex].text;
                var value = slct.options[slct.selectedIndex].value;
                document.getElementById('parent').innerHTML=text
                document.getElementById('parent').href=value
                document.getElementById('parentID').value=value


            });
    });
</script>

        <div class="None_background window" id="dialog" style="padding:5px">

             <?php include_partial('module/Partial', array('param'=>value));?>

    </div>

    <div id="mask">
    </div>

表单中的字段也被命名为“parent”和“parentID”

I finaly solved this way:
i used this javascript

    <script type="text/javascript">//script para abrir el selector de ud.org. sup.
    $(document).ready(function(){     
            $(".openDialog").click(function(e){
                e.preventDefault();
                //Get the screen height and width                    
                var maskHeight = $(document).height();
                var maskWidth = $(window).width();
                $('.None_background').css("style","background-color:#eee");
                $('#mask').css({'width':maskWidth,'height':maskHeight});
                $('#mask').css('top',0);
                $('#mask').css('left',0);
                //$('#mask').fadeIn(1000);    
                $('#mask').fadeTo("slow",0.5);
                var winH = $(window).height();
                var winW = $(window).width();

                //Set the popup window to center
                $("#dialog").css('top',  winH/4-$(id).height()/4);
                $("#dialog").css('left', winW/4-$(id).width()/4);

                //transition effect
                $("#dialog").fadeIn(250); 


            });
            $('#mask').click(function () {
                $(this).fadeOut();
                $('.window').fadeOut(500);
            });
            $('.window .close').click(function(){
                $('#mask').fadeOut();
                $('.window').fadeOut(500);
                //saving the selected unit in the form
                var slct = document.getElementById('parent_unit');
                var text= slct.options[slct.selectedIndex].text;
                var value = slct.options[slct.selectedIndex].value;
                document.getElementById('parent').innerHTML=text
                document.getElementById('parent').href=value
                document.getElementById('parentID').value=value


            });
    });
</script>

over this html:

        <div class="None_background window" id="dialog" style="padding:5px">

             <?php include_partial('module/Partial', array('param'=>value));?>

    </div>

    <div id="mask">
    </div>

also the fields in the form are named 'parent' and 'parentID'

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文