w_b_x: Я приведу последний аргумент, а после этого порекомендую хотя бы одну книжку прочитать и понять. Не включая отрицание попытаться впитать в себя информацию и решить для себя - что всё таки такое ООП и зачем люди его используют.
Например только что написал функцию:
Приведённый простейший пример удаления, конечно же, не может не радовать. А теперь давайте мы с вами усложним задачу.
У вас есть такие классы как User, Group, Docs, а вот пара правил обработки удаления каждого из объектов этих классов: User
Когда вы удаляете пользователя вам нужно:
Удалить пользователя из каждой группы, в которых он, возможно, состоит
Удалить все документы, которые относятся к данному пользователю. Удалить ссылки на эти файлы из БД. Так же удалить их из физического хранилища, если эти документы не связанны с другим пользователем
Group
С группами всё просто:
Очищаем группу перед удалением
Удаляем саму группу из БД
Docs
Тут тоже всё просто:
Трём все связи данного документа с пользователями
Удаляем сам файл из хранилища
Удаляем запись из БД
А теперь, будьте добры, реализуйте функцию, которая будет делать всё это.
Когда допишите последний символ кода функции, посмотрите на и скажите, как сильно вырастет его объем, сколько в нём будет копипасты, и как усложнится его отладка и понимание когда вы добавите в эту функцию код обработки других данных. Ведь у вас, кроме указанных мною выше трёх, есть еще объекты классов Article, Category, Comment и т.д. и т.п.
Вы не поняли. Допустим, что у нас есть класс User. Внутри него вы объявляете метод delete, с сопутствующей логикой. И уже в пользовательском коде вы банально вызовите этот метод. Всё.
Ооп не избавит вас от необходимости писать метод удаления, но избавит вас от головной боли в случаях когда:
в голове вам нужно держать десять разных названий функций для удаления какого-либо объекта
нужно корректно назвать функцию, что бы программисту после вас( или же вам, после длительного перерыва в работе с конкретным примером. Только не говорите, пожалуйста, что даже год спустя вы помните каждую функцию и то, как она работает. Вам всё равно приходится обновлять эту информацию в памяти) было интуитивно понятно, что выполняет та или иная функция
мешает сделать аналогичную проверку в обычной
Ничего вам не мешает. Да только метод $someUser->delete будет вызван из под объекта конкретного класса(User) и ему, в самом простом варианте имплементации, аргументы получать незачем.
Denys:
Вы посмотрите внимательно на то, как откликается ваш overlay при клике на нём. А точнее на элементах в нём визуально расположенных.
Так как дивы - это не дочерние элементы overlay, то при клике по блоку с текстом overlay не скрывается. А должен, если я правильно понял вашу задачу.
Дмитрий Мыльников: https://jsfiddle.net/hmrogs6h/
Событие change срабатывает только тогда, когда input теряет focus. Если вы меняете значение инпута с помощью кода, то после изменения значения вам следует сделать триггер нужного события.
то есть $("#someInput").val("1").change();
Тогда всё заработает.
А в песочнице код не работает, потому что в меню, слева, в External Recources, нужно указать ссылку на библиотеку jQuery
За короткий вариант записи - спасибо, взял на вооружение.
Но в вашем варианте разница во времени будет выведена как 00:00, так как gmtime возвращает время по гринвичу. Мне же пришлось отдельно выводить корректную разницу через date().
Хотя не исключаю вариант, что не правильно понял условие.
Вы, вероятно ответом промахнулись. Там вам показали ответ, где используется имя класса кнопок, что в свою очередь вызовет клик по всем элементам с таким классом. В качестве указателя на элемент используйте айди, а не класс, если вам нужно обработать нажатие на конкретный элемент
Вас когда редикректит обратно на логин - проверьте, что лежит в $_SESSION. Так же уберите из десктруктора session_destroy. Если вам нужно явно закрывать сессию, когда пользователь выходит со страницы - оберните его в не автоматически вызываемый метод.
Предположу, что код вы отдебажили, условие if равно true. Попробуйте использовать .hide без fade эффекта и duration. .hide точно так же оперирует с атрибутом display
Ingernirated:
В первом if вы пытаетесь сопоставить типы элементов, что бы счётчик не увиличился, если вы напоролись на TEXT_ELEMENT. .nodeType возвращает беззнаковое короткое целочисл.... document.ELEMENT_NODE - константное значение, равное 1.
Во втором:
Опять таки, вы сравниваете два элемента между собой, а не их положение в "массиве". e.target возвращает ссылку на объект, на котором сработало событие.