Категория: Веб-программирование

Здесь я собираю всё, что может быть полезным для веб-программиста.



Проверка Checked в Jquery

Как можно проверить отмечен чекбокс или не отмечен, или какой радиобокс выбран? Как это проверить тут же на странице, средствами jQuery?

Мелочь, но пришлось долго и упорно гуглить. Поэтому то, что нагуглил напишу в виде шпаргалки здесь.

Проверка отметки чекбокса
=====================

1
$("ваш_селектор").attr("checked")=="checked"

Какое значение выбрано у радиобокса
=====================

1
$('input:radio[name=имяпеременной]:checked').val()

Категории jQuery |
автор: altesack / Пятница, Октябрь 28, 2011 / Нет комментов »

Очистка обработчиков в jQuery


Делал нагруженную ajax и jquery страницу и столкнулся с интересной проблемой. А обнаружилось случайно – просто заметил, что некоторые ajax-запросы посылаются несколько раз.

Немного понаблюдал за ситуацией и заметил что в таких случаях:

  • Некая часть страницы генерируется по ajax.
  • В этой странице тоже есть элементы, поведение которых программируется в jquery и может быть даже ajax.
  • Понятно, что скрипты этого поведения вставляются вместе с этой частью страницы
  • Всё в целом работает.

Но если потыкать мышками и повторить цикл вставки этой части страницы несколько раз то

  • Скрипт “накапливает” все методы обработки. По крайней мере каждый следующий раз каждый клик срабатывает два-три-итд раз
  • При этом сам HTML нормально вставлен один раз.

Куда копать? Какие слова гуглить? Как оказалось, нужно просто почитать матчасть!

Читать далее »


Категории jQuery |
автор: altesack / Среда, Август 24, 2011 / Нет комментов »

Kohana 3.0. Мысли о том как надо писать модели.


Дык, модели бывают разные. И говорят, что сиськи способствуют популярности блогов :)
Для работы со штатным ORM нужно заводить модель для каждой таблицы. Всегда. Она может быть вообще пустой, но она должна быть. Ну, необязательно совсем пустой, там могут быть описания связей и всё такое.

Но всё выше сказанное не означает, что больше в моделях писать нечего. Ниже я попытаюсь систематизировать, что ещё такого можно, и даже стоит написать именно в модели.

1. Перечень полей
=========================
В модели обязательно должны быть описаны все поля таблицы. Подробнее проблема описана тут

Читать далее »


Категории Kohana |
автор: altesack / Суббота, Июль 23, 2011 / 10 комментов »

Немного о MovieMasher

moviemasherДовелось мне столкнуться с этим зверем. Впечатления довольно сильные, поэтому пока не забыл спешу тут всё изложить.

Что такое MovieMasher
============
Наверняка каждый из читателей видел сервисы демотиваторов. Любой пользователь может загрузить некое изображение, и любые другие пользователи могут поглумиться над ним, приписывая свои тексты. Я видел сервис, в котором можно было прямо в онлайне что-то даже пририсовывать. Не важно.

А теперь представьте что всё это происходит не с изображениями а с видео! Юзеры грузят свои клипы, а некто может над ними изгаляться, вставлять свои титры, накладывать эффекты, делать врезки, вставлять свои слайды и прочее! Понятно что там мозгов нужно на порядок больше чем при работе с графикой, но не в этом суть.

Представили такой сервис? А теперь вуаля – бесплатный набор скриптов с открытым кодом, позволяющий абсолютно нормально делать это НА ВАШЕМ САЙТЕ. Это, как вы наверное уже догадались, и есть MovieMasher! Та-да!

Читать далее »


Категории Веб-программирование |
автор: altesack / Пятница, Июль 01, 2011 / Нет комментов »

Kohana ORM. Используем выражения

kohanaЯ долго не мог понять, чего мне не хватает в штатном ORM от Kohana. А не хватало именно возможности использования выражений.

Бывало напишешь по-наивности какое-нибудь выражение прямо в where. Например, так:

1
where('concat(first_name," ",last_name)',"like","%$searchstring%")...

А потом получаешь ошибку, что нет такого поля 'concat(first_name," ",last_name)'

И вот однажды я в недрах интернетов нашёл решение, которое конечно же решил положить в мою копилку шпаргалок. Всё дело в использовании функции DB::expr. Вот например так:

1
2
3
4
5
6
7
$searchresult=ORM::factory("user")->
  where(   DB::expr('concat(first_name," ",last_name)'),
                           "like","%$searchstring%")->
  order_by("id","desc")->
  limit($data['per_page'])->
  offset($data['offset'])->
  find_all();

Воистину, ORM может всё, только нужно знать все его трещинки.


Категории Kohana |
автор: altesack / Среда, Июнь 22, 2011 / 4 комментов »