Задать вопрос
  • Как вставить в переменную?

    @DanKud
    getmanrus, просто напишите как вы выводите на экран результат, чтобы вам показало 9 лайков?

    и ставлю переменную $chto = 'count';
    мне выведет 9 лайков
  • Как вставить в переменную?

    @DanKud
    getmanrus, я прекрасно понял, что вам нужно. И чтобы вывести данные правильно, нужно сделать именно то, о чем я написал в первом комментарии. Чтобы я вам написал корректный ответ, нужно больше вашего кода!

    Вы можете просто написать:
    $chto = 'items';
    .....
    return $infol->response->$chto[0]; /* именно [0] это первый id */

    и получите то, что вам нужно, но это будет не правильно с точки зрения логики класса.
  • Как вставить в переменную?

    @DanKud
    getmanrus, вы дали отрывок кода из метода класса. По нему я вам ничего конкретно не могу сказать, если вы не можете понять, то что я написал изначально. Напишите полный код самого класса и метода.
  • Как вставить в переменную?

    @DanKud
    $chto = 'items';

    Но нужно вернуть результат функции в переменную, а дальше уже получать значения массива. То есть нужно вызывать функцию или метод, в зависимости от кода:

    $return = имя_функции();
    /* или */
    $return = $class->метод();


    И затем соответственно:

    print_r($return);
    echo $return[0];

    Напишите больше кода, чтобы дать ответ.
  • Проблема с авторизацией при помощи CURL PHP?

    @DanKud
    Попробуйте:
    $post = "utf8=%E2%9C%93&user%5Bemail%5D=Pogodinaa&user%5Bpassword%5D=12345&commit=%D0%92%D0%BE%D0%B9%D1%82%D0%B8";
  • Работа с двумя Таблицами в БД Php?

    @DanKud
    Нужно делать два разных запроса к разным таблицам:
    $query1 = "SELECT `user_id` , `username` FROM `signup` WHERE username = '$user_username' AND password = SHA('$user_password')";
    $query2 = "SELECT `user_id` , `username` FROM `signup1` WHERE username = '$user_username' AND password = SHA('$user_password')";
  • Как в PHP проверить массив на наличие слов(нескольких) если подключаю файл?

    @DanKud
    Владислав Тищенко, если выводить строку, то нужно считывать файл построчно, тогда код будет немного другой:
    $badWords = [
        'матерное_слово_1',
        'матерное_слово_2',
        'матерное_слово_3'
    ];
    
    $content = file('log.txt');
    $strRegex = implode('|', $badWords);
    
    foreach ($content as $str) {
        if (preg_match('/(' . $strRegex . ')/i', $str)) {
            echo 'есть мат в строке: ' . $str;
        } else {
            echo 'нет мата';
        }
    }
  • Как лучше писать условия if?

    @DanKud
    Не возвращать результат функции, а делать вывод внутри нее это плохой тон. Так что конечно лучше через return но при этом никто не запрещает вам делать и по другому :)
  • Как передать массив ajax?

    @DanKud
    Я передаю массив из js в php. Вот просто принял

    Передать массив можно только сериализовав его. Передавайте сразу в JSON, в чем проблема?

    JS:
    $.ajax({
        async: false,
        url: 'test.php',
        data: {
            data: JSON.stringify(TableList)
        },
        type: 'post',
        success: function(result) {
            console.log(result)
        }
    });

    PHP:
    if (isset($_POST['data'])) {
        print_r(json_decode($_POST['data'], true));
    }
  • Как заменить теги при использовании clone()?

    @DanKud
    Genri_Rus, да все верно, я ошибся, и условие не совсем корректное. Правильнее будет вместо
    if ($('input:checked').length === 1) modal.html('');
    написать условие
    if (!modal.children().is('.item')) modal.html('');

    Вообще вот более лаконичный и правильный код с использованием .clone соответственно без замены тэгов, не совсем понятно зачем вам вообще нужна замена тэгов:
    https://codepen.io/anon/pen/XGLEbR?editors=1010#0
  • Как заменить теги при использовании clone()?

    @DanKud
    Genri_Rus, тогда можно добавить условие, если ставится первый чек, то удалять все содержимое в .modal при этом это условие должно быть выше кода добавления элемента, чтобы не удалился сам добавляемый элемент:
    $('body').on('change', '.check', function(){
        var replace = '';
        var elements = $(this).parent().siblings('.copy, .copy-2');
        var modal = $('.modal');
    
        $(elements).each(function() {
          replace += this.outerHTML.replace(/(<|<\/)p/g, '$1span');
        });
    
        if ($('input').is(':checked')) {
            if ($('input:checked').length === 1) modal.html(''); /* если ставится первый чек, то удаляем все содержимое .modal */
            modal.show();
        } else {
            modal.addClass('modal-hide').text('Здесь ничего нет');
        }
    
        var wrapReplace = '<div class="item">' + replace + '</div>';
    
        if ($(this).prop('checked')) {
            modal.append(wrapReplace);
        } else {
            modal.html(modal.html().replace(wrapReplace, ''));
        }
    });
  • Как заменить теги при использовании clone()?

    @DanKud
    Genri_Rus, а зачем вы добавили .html?
    .....
    var modal = $('.modal').html('');
    .....

    в этой переменной должен быть сам объект .modal а не его HTML-код:
    .....
    var modal = $('.modal');
    .....
  • Как заменить теги при использовании clone()?

    @DanKud
    Genri_Rus, .outerHTML это нативный метод JS, не имеющий отношения к JQuery. С помощью .clone вам предлагали решение в ответах насколько я помню, только почему-то сейчас ответ удален. Главная причина почему я предложил решение на .outerHTML + .replace это потому что вам нужно было заменять тэги. Делать это на JQuery не совсем удобно, тем более если будет например такое, что у некоторых элементов будут отличаться атрибуты. С помощью .clone можно реализовать добавление элементов легко, но вот с заменой тэгов, повторюсь, не совсем удобно.

    Например можно присвоить каждому input специальный уникальный идентификатор, к примеру атрибут data-id:
    <p><input class="check" name="name" type="checkbox" data-id="1"></p>
    .....
    <p><input class="check" name="name" type="checkbox" data-id="2"></p>
    .....

    и затем использовать такой код с помощью .clone
    $('.check').on('change', function() {
        var attrName = 'data-id'; /* имя уникального атрибута */
        var cloneElements = $(this).parent().nextAll('p').clone().attr(attrName, $(this).attr(attrName));
        var modal = $('.modal');
        if ($(this).prop('checked')) {
            modal.append(cloneElements);
        } else {
            modal.find('[' + attrName + '="' + $(this).attr(attrName) + '"]').remove();
        }
        if ($('input').is(':checked')) {
            modal.show()
        } else {
            modal.hide();
        }
    });

    Этот код без замены тэгов и он намного лаконичнее и правильнее смотрится :)

    На счет эффекта переноса в корзину надо гуглить. Да это скорей всего можно реализовать с помощью .offset вот например почти по первой же ссылке в гугле дает вот такой код - https://error-log.ru/blog/jquery-animirovannyij-po...
  • Как заменить теги при использовании clone()?

    @DanKud
    Genri_Rus, правильно-неправильно я бы тут не рассуждал в данный момент. Чтобы написать "правильный" код нужно все-таки знать непосредственно саму HTML-разметку и все входные условия. Мы с вами рассматриваем все лишь на сокращенном примере, по-этому тут можно сказать изначально, что код, с точки зрения "правильности", вполне возможно не совсем корректный, но при этом рабочий и дает понять саму суть того как обработать нужные нам действия :)

    Ваш код не совсем рабочий, потому что
    var wrapReplace = '<div class="item">' + replace + '</div>';
    нужно вынести за условие, иначе элемент не будет удаляться. А чтобы скрывать/показывать .modal во-первых надо добавить display: none; к блоку .modal в CSS. И прописать условие в JS:
    $('body').on('change', '.check', function(){
        var replace = '';
        var elements = $(this).parent().siblings('.copy, .copy-2');
        var modal = $('.modal');
    
        $(elements).each(function() {
          replace += this.outerHTML.replace(/(<|<\/)p/g, '$1span');
        });
    
        var wrapReplace = '<div class="item">' + replace + '</div>';
    
        if ($(this).prop('checked')) {
            modal.append(wrapReplace);
        } else {
            modal.html(modal.html().replace(wrapReplace, ''));
        }
        
        if ($('input').is(':checked')) { /* если у нас есть хоть один элемент на котором стоит чек, то показываем .modal */
            modal.show();
        } else { /* иначе скрываем .modal */
            modal.hide();
        }
    });
  • Как заменить теги при использовании clone()?

    @DanKud
    Genri_Rus, нужно просто проверять в условии стоит чек или нет и соответственно добавлять или убирать элементы. Поскольку у вас все элементы с одними и теми же классами, то надо добавлять какое-то уникальное значение к элементам и убирать их по нему, либо можно реализовать так, через все тот же .replace
    $('body').on('change', '.check', function(){
        var replace = '';
        var elements = $(this).parent().siblings('.copy, .copy-2');
        $(elements).each(function() {
          replace += this.outerHTML.replace(/(<|<\/)p/g, '$1span');
        });
        var modal = $('.modal');
        if ($(this).prop('checked')) {
            modal.append(replace);
        } else {
            modal.html(modal.html().replace(replace, ''));
        }
    });
  • Как с помощью substr() вырезать кусок кода от тега до тега?

    @DanKud
    phpavel, с такими запросами вам уже нужно смотреть в сторону сторонних библиотек для парсинга. Парсить это все регулярками конечно можно, но будет неудобно:
    php-simple-html-dom-parser
    phpquery
    dom-crawler + css-selector
  • Как заменить теги при использовании clone()?

    @DanKud
    Genri_Rus, если нужно заменить тэги у нескольких элементов, то без этого никак. Это метод перебора элементов.

    На счет того, что контент попадает в массив. Это не массив. Мы получаем просто строку с HTML-кодом, которую добавляем методом .append в нужный нам блок.