Наверх
jQuery практическое использование ajax

Всё как то руки не доходили, а тут пришлось воспользоваться ajax. Конечно в теории все звучало проще и красивее, но когда дошло до дела, пошли первые косяки :) да и программировал я уже довольно давно, навыки совсем растерял.

Первым дело решено было сделать всё это с помощью JSON на jQuery, ибо звучало все красиво и довольно просто. Но тут же обнаружились сложности, в PHP функция json_encode превращала все полученные красивые русские буковки в набор символов вида /uXXXX/uXXXX и т.д. Но это ещё не всё, совсем было непонятно как работать с массивом полученных JSON данных в JS. В общем после половины дня мучений, я забросил это дело. И решил пойти более простым способом, получать данные сразу в html.

$.ajax({  
type: "POST", // Метод которым отправляем
url: "load-cats.php", //Файл куда отправляем, и откуда примем результат
data: "cats=true&catid="+numsr, //Данные отправляемые
success: function(html){  //Всё что делаем после получения данных
$('#formBlockSec').html('').append(html);
}  
});  

Ну а сам load-cats.php выдает нам готовый html, который просто нужно вставить в нужное место. Всё просто как дважды два :)

Как ни крути, для простеньких задач выбирайте простые решения. Зачем всё усложнять?

А JSON всё таки интересная тема, и надо будет в ней разобраться. Возможно даже что-то написать по этой темке.

Хорошенько перемешать

Пока делаешь сайт приходится решать некоторые, по сути простые задачи, но так лень писать какой-то код самому.

Необходимо было выдавать список номеров телефонов в разном порядке. Ибо клиенты постоянно звонят на первый номер, если он занят звонят на второй, опять же бывает что он занят, на третий звонить им просто видимо становится лень. Решение простое, каждый раз выдавать номера в рандомном порядке.

Просидел я почти часа два ничего не делая, видимо голова сегодня плохо варит на такое. Решил поискать решения в интернете, и нашел простенький микроплагин для jQuery. Называется он просто jQuery shuffle, работает ещё проще =) Кому интересно, вот демо.

Подключаем плагин в хеде документа строчкой:

<script type="text/javascript" src="путь/к/плагину/jquery.shuffle.js"></script>

К примеру у нас есть список телефонов которые необходимо перемешать:

<ul id="Phones">
<li>(234) 12-23-34</li>
<li>(234) 12-23-35</li>
<li>(234) 12-23-36</li>
</ul>

Теперь перемешиваем его:

$('ul#Phones').shuffle();

Так же есть другой вариант, есть необходимость перемешать просто готовый массив:

var arr = [1,2,3,4,5,6];
arr = $.shuffle(arr);

Затем при необходимости просто выводим полученные значения.
Работает все очень просто. А вот ссылка на демо и так же на сам плагин

Блог не умер, он жив!
07.09.2011 - ,

Да-да он жив =) Забросил я его на время правда, поступая в универ, работая над сервером CS. Совсем обленился писать в блог, хотя теперь есть куча идей по счет статей, на разные темы. И даже больше есть кое-какой полезный материальчик, уже подготовленный, который нужно только доделать.

А так же столько не доделанных дел. Не закончен сайт Доброго Скиффа, который я взялся переделать, но остановился на той части где нужно закинуть материал, и перекинуть базу на хостинг. Но меня дергают то туда то сюда, ещё учеба, не знаю за что взяться вначале. Нужно собраться и поочередно решить проблемы по мере поступления. Чем раньше отвяжусь от одних идей, тем больше времени для реализации других.

В последнее время появилось очень много тем интересных для меня, так что с появлением у меня времени будут появляться новые интересные посты. А время у меня должно появится на следующей неделе. В новых темах будет:

  • CS сервера и все что с ними связано, от написания плагинов до настройки
  • CS клиент изменение, так же тонкая настройка
  • Полезные и интересные программы
  • И конечно же больше статей по веб-разработке.

А может и ещё что-то интересное. Моя жизнь становится все интереснее и интереснее, так что материала будет соответствующее количество!

Скрипт изменения вывода в таблице

Уже не в первый раз меня заказчики просили увеличить вывод товаров в магазине PHPShop. В PHPShop в зависимости от версии скрипта максимальный вывод товаров в строку варьируется от 2 до 4.

Это можно сделать и в самом коде в той части где выводятся таблицы товаров. Но такой вариант не всегда хорош, к примеру в этот раз было необходимо сделать вывод разного количества товаров в строку в зависимости от разрешения экрана пользователя.

Я написал небольшой скрипт jQuery, который в зависимости от разрешения экрана пользователя заменяет старую таблицу вывода товара на новую с нужным количеством товаров в строку.

Скрипт работает в IE 6-8, Safari, Chrome, Opera, FF. Это в тез которых мы проверяли. Максимальное количество товаров при котором не лагает пока не узнавал, но будет проверено чуть позже.

И так, сам скрипт:

var k = 0;
var tds = new Array();
$(".panel_t").each(function(){ //создаем массив всех ячеек таблицы
   tds[k] = $(this).html();
   k++;
});
var width = screen.width; //узнаем разрешение монитора
if(width<1280) { //при разных разрешениях у нас разное количество столбцов
   // по умолчанию, ничего не меняем.
} else {
   if(width<1600) {
      var d = 4; //Можно поменять на свое, в зависимости от ширины вывода блока каждого товара
   } else {
      var d = 5;
   }
   var leng = tds.length; //скока в массиве элементов
   var strokse = leng/d; //расчитываем количество необходимых строк в зависимости от того сколько будет стобцов. округляем до большего
   strokse = Math.ceil(strokse);
   var all = strokse*d; //Сколько всего будет ячеек в таблице(строк*столбцов)
   if(all>leng) { // Товаров меньше чем ячеек в таблице?
      for(h=all;h>=leng;h--) {
         tds[h]=" ";//заполняем пустые ячейки
      }
   }
   var sumEl = leng-1; //массив считается с нуля, поэтому -1
   var tableM = ""; //пустая переменная для таблицы
   var l = d+(d-1); //цифра для colspan
   k=0; //обнуляем к
   for(i = 0; i < strokse; i++) { //первый цикл, формирует строки
      tableM += "<tr><td colspan=\""+l+"\"></td></tr><tr>"; //строка для сетки, и начало второй строки с товаром
         for(c=0;c<d;c++){//цикл второй формируем каждую строку
            if(c!==(d-1)) {//если не последняя ячейка в таблице то
               tableM += "<td>"+tds[k]+"</td><td class=\"setka\"></td>";
            }else{//если ячейка последняя
               tableM += "<td>"+tds[k]+"</td>";
            }
            k++;//прибавляем ячейку
         }
      tableM += "</tr>";//закрываем строку
   }
   $("#ThisMainTable").empty().append(tableM);
} 

На идеал этот скрипт не тянет, всегда есть что и куда улучшать. Есть идеи как улучшить скрипт? Отписываемся =)

ReLife #3
02.07.2011 - ,

И так после долгого отсутствия, я снова тут. Теперь я бакалавр :D Диплом правда пока не получил, но через пару дней будет. А пока можно заняться тем что мне нравится.

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

То что уже существует, будет перенесено в отдельную категорию и будет скрыто. На главной странице конечно все останется, но через категории найти все что было написано ранее скорей всего будет невозможно.

Так же в планах добить этот дизайн. Не забыть про иконку для сайта =) Так же доделать дополнительные страницы сайта, и функцию перелистывания страниц. В общем идей много, вот только сделаю ли я?! Снова как обычно мое не хотение все оборвет, но попытаюсь в этот раз не обломать.

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

Военкомат
02.06.2011 - ,

Совсем охренели в военкомате. Повестку прислали, под подпись. Я как дурак расписался.

А потом тока понял что меня наебали попросту. Так как я ещё учусь, по закону они не имеют права вызывать меня в военкомат для мероприятий связанных с призывом на службу. Хотя они мне даже сами показывали бумажку с гербовой печатью, что до 30 июня я учусь. А значит, отсрочка действует всё это время.

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

Видимо у них там жесткий недобор и прут всех кого только можно. Пишу чтобы кто-то тоже по глупости подобное не сделал. Не имеют права. А пользуются тем что люди законов незнают.

Так для информации, это был Военкомат Приволжского и Вахитовского районов г. Казани. Ну теперь вроде во всем разобрались, до конца июля я свободен с всязи с учебой. Хотя они до последнего свое гнули.

Работа, учеба, дела...
23.05.2011 - ,

Такого завала у меня не было давно =) Вот что значит не откладывай на завтра. С месяца два я откладывал дела) итог, наступила жопа. (!) – воооот такая огромная.

Надо список составить чтобы не забыть ничего. Пишу сюда ибо тут я точно про него не забуду.

Учеба

  • 2 курсовые по учебе.
  • Долги позакрывать всякие. Сходить хоть раз за семестр на физру, поговорить с преподом чтобы поставил он мне зачет за ниче не делание.
  • Переписать лекции по 2-3 предметам. 4 курса никто лекции не просил, а тут на те сразу 3 препода и всем лекции показывать.
  • Мелочи всякие.

Работа

  • Добить проект заказчику номер 1. Доделать мелкие пожелания.
  • Сделать два небольших проекта заказчику номер 2.(максимум неделя по 2-3 часа в день)
  • Посмотреть что я должен заказчику номер 3.

Свои проекты.

  • Добить уже этот перевод
  • Записать список идей для блога(Идей море, а не запишешь забывается и неделается потом)
  • Второй проект, занятся уже наконец наполнением и раскруткой(Почитать про раскрутку, ибо в ней я конкретный слабак)

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

Верстаю

Занимаюсь версткой, дизайнов любой сложности. Натягиваю шаблоны на CMS: TextPattern, Joomla, WordPress, PHPShop, ShopCMS. Делаю долго, но качественно, верстка с любыми параметрами.

Связаться




(*) Все поля обязательны для заполнения.