favorite-vacancy.blade.php 3.33 KB
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery-cookie/1.4.1/jquery.cookie.min.js"></script>
<script>
    console.log('js выполняется...');
    console.log(read_array());
    $(document).ready(function() {
        $(document).on('click', '.js_vacancy_favorites', function () {
            var _this = $(this);
            var id_worker = _this.attr('data-val');

            console.log('Test test test test test...');
            console.log('id_worker='+id_worker);

            if (_this.hasClass('active')) {
                add_in_array(id_worker);
                console.log('Добавлено в избранное id=' + id_worker);
            } else {
                delete_in_array(id_worker);
                console.log('Удалено из избранных id='+id_worker)
            }
            var str = $.cookie('favorit_vacancy');
            console.log("Вывод куков "+str);

        });
    });

    //помеченный элемент
    function selected_item(obj) {
        var arr = read_array();
        var index = arr.indexOf(obj);

        if (index > 0)
            return "active";
        else
            return "";
    }

    // запись элемента массива в cookie
    function add_in_array(obj){
        var arr = read_array();//получаем текущее состояние массива
        arr[arr.length]=obj; //добавляем элемент в конец
        //var str = JSON.stringify(arr);//конвертируем в строку
        //$.cookie('arr',str);//записываем массив в куки
        //$.cookie('favorite_vac', JSON.stringify(arr));
        console.log(arr);
        $.cookie("favorit_vacancy", JSON.stringify(arr), { expires: 360, path: '/' });

    }

    // удаление элемента из массива в cookie
    function delete_in_array(obj) {
        var arr = read_array();
        var unique = [...new Set(arr)]
        var index = unique.indexOf(obj);

        unique.splice(index, 1);

        //var str = JSON.stringify(arr);//конвертируем в строку
        //$.cookie('arr',str);//записываем массив в куки
        //$.cookie('favorite_vac', JSON.stringify(unique));
        $.cookie("favorit_vacancy", JSON.stringify(unique), { expires: 360, path: '/' });

    }

    function read_array(){
        // у-тв-арь
        var dataArr=$.cookie('favorite_vacancy');//считываем данные из куков

        //если массив  не был обнаружен, иницилизируем его
        if(dataArr===undefined) {
            dataArr = init_array(); //возвращаем инициализированный пустой маасив
        }
        //возвращаем полученный массив
        //return JSON.parse(dataArr);
        return JSON.parse(dataArr);
    }

    //другими словами создаем пустой массив
    function init_array(){
        //var str = JSON.stringify(new Array());//конвертируем в строку
        var str = JSON.stringify(new Array());
        //$.cookie('favorite_vac',str);//записываем массив в куки
        $.cookie("favorit_vacancy", str, { expires: 360, path: '/' });
        return str;
    }

</script>