Dram

Рейтинг
1114
Регистрация
28.06.2008
Сергеич - я тоже это замечал, когда пытался блокировать шалк и из коротких зон типа .tk то цепляло и домены начинающиеся на www.tk  то таких было единицы и я забил - лучше сотни шлака заблокирую.
Заменил jQuery на $ у функции нажатия на кнопки вставил после 
all.html(str);

и все заработало

Спасибо за ответ, теперь понятно - я создал блоки но старый обработчик события их не цепляет, нужно создать новый.

JS еще плохо знаю, можете помочь?

Вот моя функция генерации простыни отзывов

   jQuery(".checked_comm_div input").click(function (e) {
          var votes = $("input[name='radio']:checked").val();   
var objectid = $("#data-similar").attr("data-id"); var objectgroup = $("#data-similar").attr("data-type"); var all = $(".scomments-all");      
  jQuery.ajax({
                    type: 'POST',
                    url: '/index.php',
                    dataType: 'json',
                    timeout: 5000,
                    data: {
                        option: 'com_comments',
                        view: 'item',
                        format: 'json',
                        task: 'votes',
                        votes: votes,
                        objectid: objectid,
                        objectgroup: objectgroup
                    },
                    success: function (data) {
                        console.log(data)
                        let str = '';
                        let styleComments;
                        let text_title;
                        let status;

                        for (var i = 0; i < data.length; i++) {
                            str += '<div class="scomments-item ' + styleComments + '"' + status + '>';
                            ////далее еще много раз собирается str +=
                        }
                        $("div.pagination").empty()
                        all.html(str);
                    }
                });
            });

а вот функция обработки нажатия кнопок

            jQuery(".scomments-vote a").click(function (e) {
                e.preventDefault();
                var el = jQuery(this).parent();
                var id = jQuery(this).attr("data-id");
                var value = jQuery(this).attr("data-value");

                jQuery.ajax({
                    type: 'POST',
                    url: '/index.php',
                    dataType: 'json',
                    timeout: 5000,
                    data: {
                        option: 'com_comments',
                        view: 'item',
                        format: 'json',
                        task: 'vote',
                        value: value,
                        id: id
                    },
                    success: function (rows) {
                        el.html('Спасибо ваш голос принят');
                    }
                });
            });

попробовал ее сунуть после 

all.html(str);

получаю ошибки, не подскажите как ее корректно вставить?

Не нашел ту тему с Биланами пишут тут - обратите внимание на новый вид шлака - "Бензин по 23 р. на ..." и другими разными вариациями скидки на Бензин
Большое спасибо!

Получилось так

SELECT count(*) AS bad, 
(SELECT count(*) FROM `comments_items` WHERE `object_group` = 'com_firm' AND `object_id` = 1698 AND `rate` = 3) AS neutrally,
(SELECT count(*) FROM `comments_items` WHERE `object_group` = 'com_firm' AND `object_id` = 1698 AND `rate` > 3) AS good
FROM comments_items WHERE `object_group` = 'com_firm' AND `object_id` = 1698 AND `rate` <=2

Спасибо за помощь, продвинулся в понимании немного дальше. Решил не говнокодить и соблюсти стандарты. Вынес код JS в отдельный файл (который был уже ранее с другими функциями)

                jQuery(document).on("click", ".checked_comm_div input", function() {
                        var vote = $("input[name='radio']:checked").val();
                                //console.log(vote);
                        jQuery('#msg').hide();
                        jQuery.ajax({
                                type: 'POST',
                                url: '/index.php',
                                dataType: 'json',
                                timeout: 5000,
                                data: {
                                        option: 'com_comments',
                                        view: 'item',
                                        format: 'json',
vote: vote,
                                        task: 'getVoteComments'
                                },
                                success: function (data) {
                            console.log(data)
                                }
                        });
                });

Пока еще работает только 

console.log(vote)

Далее в файле   такая функция

    function getVoteComments()
    {
        $vote = JRequest::getVar('vote');

        if (isset($vote)) {
            if ($vote == 'good') {
                $rate = ' AND `rate` >=4';
            } elseif ($vote == 'neutrally') {
                $rate = ' AND `rate` =3';
            } elseif ($vote == 'bad') {
                $rate = ' AND `rate` <=2';
            } else {
                $rate = '';
            }
            //тут запрос в базу
        }
    }

Правильно ли я понимаю

data: {
       option: 'com_comments', //указал какой компонент
       view: 'item', //указал какой файл - item.php
task: 'getVoteComments', //вот тут сомневаюсь, как дать понять скрипту какая функция нужна?
vote: vote
LEOnidUKG #:

А можно узнать зачем ты обычный JS с Jquery смешиваешь? Прикрепи на класс или на ID операцию.

потому что я говнокодер, прошу помочь. Как нужно переделать верх чтобы все было на  Jquery?

если удалить все что ниже 
$.ajax({

и раскомментировать 

//alert(myRadio.value); (чисто для проверки, нужные данные в функцию приходят

То аллерты срабатывают при нажатии на чекбоксы и показывают нужные данные. Так что функция есть и работает, что-то не так именно в после $.ajax({

В смысле нет, а это что?

 function handleClick(myRadio) {
Всего: 6924