addEdit.php 10.4 KB
<script type="text/javascript">

    function loadCSS(filename){

        var file = document.createElement("link")
        file.setAttribute("rel", "stylesheet")
        file.setAttribute("type", "text/css")
        file.setAttribute("href", filename)

        if (typeof file !== "undefined")
            document.getElementsByTagName("head")[0].appendChild(file)
    }


    //just call a function to load a new CSS:
    loadCSS("/css/brief.css")

</script>
<div id="addEdit">
    <div class="inner"><?= $this->flash->output(); ?></div>
    <div class="inner">
        <div class="sidebar_content_wrapper clearfix">
            <div class="content_wrapper float">
                <div class="content_wrapper_list clearfix">
                    <div class="table_name header_gradient"></div>

                    <div class="table_pages_wrapper">
                        <div class="middle">
                            <div class="content">
                                <form enctype="multipart/form-data" method="post" action="" id="brief_send_form">

                                    <?php foreach($fields as $field):?>
                                        <div class="block_h1">
                                            <h1><?= $field['name'] ?> </h1>
                                        </div>

                                            <?php foreach($field['children'] as $sub_field):?>
                                            <div class="block">
                                                <div data-required="<?= $sub_field['required'] ? 'required' : '' ?>" class="work_space <?= $sub_field['class_name'] ?>">
                                                    <div class="block_left">
                                                        <?= $sub_field['required'] ? '<span class="star"> *</span>' : '' ?>
                                                        <h2><?= $sub_field['name'] ?> </h2>
                                                    </div>
                                                    <div class="block_right">
                                                    <?php if($sub_field['class_name'] == 'gender_right'):?>
                                                        <div class="gender_right">
                                                            <div class="gender">
                                                                <div class="gender_r"><p>Мужчины<br>Женщины</p></div>
                                                            </div>
                                                            <div class="gender_l">
                                                                <div class="gen_block">
                                                                    <div class="gender_l_0">14-24</div>
                                                                    <div class="gender_l_0">25-34</div>
                                                                    <div class="gender_l_0">35-44</div>
                                                                    <div class="gender_l_0">45-54</div>
                                                                    <div class="gender_l_0">55+</div>
                                                                </div>
                                                                <div class="gender_left_0">
                                                                <?php foreach($sub_field['fields_data'] as $field_data):?>
                                                                    <div id="q0">
                                                                        <div id="q1">
                                                                            <div id="q2">
                                                                                <?= $field_data['html'] ?>
                                                                            </div>
                                                                        </div>
                                                                    </div>
                                                                <?php endforeach; ?>
                                                                </div>
                                                            </div>
                                                        </div>
                                                    <?php else: ?>

                                                        <div class="box"> <?php foreach($sub_field['fields_data'] as $field_data):?>
                                                            <div class="box-block"><?= $field_data['html'] ?></div>
                                                        <?php endforeach; ?>
                                                    </div>
                                                    <?php endif;?>
                                                    </div>
                                                </div>
                                            </div>
                                            <?php endforeach; ?>

                                    <?php endforeach; ?>
                                    <div class="block_right"><input id="submit_form" type="submit"></div>
                                </form>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>
<script type="text/javascript" src="http://code.jquery.com/jquery-2.1.4.min.js"></script>
<script>
    $(document).ready(function(){
        $('.check-float-ul').parent().parent().css({float:'none'});
        $('.check-float-ul-2').parent().parent().css({float:'none',
        height:'39px',
            marginRight:'15px',
            paddingTop:'10px',
            boxSizing: 'border-box'

        });
        var brief_id = <?= $section_id ?>;
        $.post('/get_brief_form_data',{ brief_id:brief_id}, function( data ) {
            var fieldsData = jQuery.parseJSON(data);
            var count = fieldsData.length;
            for(var i = 0; i < count; i++){
                insertFormData(fieldsData[i] );
            }
        });

        function insertFormData(data){
            switch (data.field_type) {
                case 'text':
                    insertInputData(data);
                    break;
                case 'radio':
                    radioInputData(data);
                    break;
                case 'checkbox':
                    checkboxInputData(data);
                    break;
                case 'select':
                    insertSelectData(data);
                    break;
                case 'submit':
                    insertInputData(data);
                    break;
                case 'textarea':
                    insertTextAreaData(data);
                    break;

            }
        }


        function insertInputData(data){
            $('input[name='+ data.id +']').val(data.field_value);
        }
        function radioInputData(data){
            $('input[name='+ data.id +']').each(function(){
                if($(this).val() == data.field_value ){
                    $(this).prop('checked', true);
                }
            });
        }

        function checkboxInputData(data){
            $('input[name='+ data.id +']').each(function(){
                if($(this).val() == data.field_value ){
                    $(this).prop('checked', true);
                }
            });

        }


        function insertSelectData(data){
            $('select[name=' + data.id + '] option').each(function(){
                if($(this).val() == data.field_value ){
                    $(this).prop('selected', true);
                }
            });
        }

        function insertTextAreaData(data){
            $('textarea[name=' + data.id + ']').val(data.field_value);
        }


        /************************************************
         * Validate
         * *********************************************/

        submit_form.onclick = function(e){
            e.preventDefault();

            var validate = 'validate';

            var blocks = document.getElementsByClassName('work_space');

            var block_count = blocks.length;

            for(var x = 0; x<block_count; x++){

                if(blocks[x].dataset.required){
                    blocks[x].classList.remove('error')
                    var error = 'error';
                    var inputs = blocks[x].getElementsByTagName('input');
                    var select = blocks[x].getElementsByTagName('select');
                    var textarea = blocks[x].getElementsByTagName('textarea');

                    for(var i=0; i<inputs.length; i++){
                        switch (inputs[i].type) {
                            case 'checkbox':

                                if (inputs[i].checked)
                                    error='no-error';
                                break;

                            case 'radio':
                                if (inputs[i].checked)
                                    error='no-error';
                                break;

                            default:
                                if(inputs[i].value){
                                    error='no-error';
                                }
                                break;
                        }


                    }

                    for(var i=0; i<textarea.length; i++){
                        if(textarea[i].value){
                            error='no-error';
                        }
                    }

                    for(var i=0; i<select.length; i++){
                        if(select[i].value){
                            error='no-error';
                        }
                    }

                    if(error == 'error'){
                        validate = 'not validate';
                        blocks[x].className = blocks[x].className + " error";
                    }
                }

            }



            if(validate == 'not validate' ){
                console.log('there is some empty fields');
            } else {
                console.log('there is no errors');
                document.forms.brief_send_form.submit();
            }
        };





        /************************************************
         * end validate
         * *********************************************/


    });
</script>