Javascript с плавающей Symfony частичной - PullRequest
0 голосов
/ 14 сентября 2011

Мне нужно реализовать функциональность для веб-приложения, которая обеспечивает простой способ выбора элемента среди тысяч из них.Теперь у меня есть выбор входа в форме, где пользователь выбирает родительский элемент объекта, из всех объектов в базе данных.Но слишком много элементов, чтобы выбрать этот путь.

С другой стороны, для этого объекта я разработал частичку списка и фильтра, поэтому мой вопрос:

Есть ли какие-тоспособ реализовать что-то вроде: Javascript, который создает всплывающее окно или похожее с частичным внутри, тогда пользователь может просто выбрать одного из родителей, используя фильтры и нумерацию страниц в частичном и представить выбранный в исходную форму?

Большое спасибо за потраченное время!: D

Ответы [ 3 ]

0 голосов
/ 16 сентября 2011

Если вам нравится jQuery, я рекомендую использовать наложение jQuery Tools, которое можно найти здесь:

jQuery Tools

Библиотека хорошо документирована и проста в использовании, так как написана в виде плагина jQuery. Проще говоря - он способен отображать красивые всплывающие окна - не в новом окне, которое я лично нахожу раздражающим, а в наложенных элементах div.

Вы можете поместить что-либо в такое всплывающее окно, например форму или ваше частичное. Затем вы можете поймать значение формы, используя jQuery, например:

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

Если вам нужна дополнительная информация, пожалуйста, дайте мне знать.

0 голосов
/ 21 сентября 2011

Я окончательно решил так: я использовал этот 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>

над этим html:

        <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'

0 голосов
/ 14 сентября 2011

Вы можете вызвать действие, которое отображает желаемую часть. Для рендеринга части из действия просто используйте:

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