|
|
|
| Друзья, подсобите с простейшим счётчиком кликов на JS с последующей передачей значения на сервер в PHP.
Т.е. если кто-то нащёлкал более 200 страниц, то получает какое-то сообщения. Сессии, пожалуйста, не предлагать!
Как-то так написал, но что-то не идёт:
<script type="text/javascript">
var S_count = GetCookie('S_count')
if (S_count == null) S_count = 0; else S_count++;
SetCookie ('S_count');
document.cookie=SetCookie;
</script>
|
А это обрабочик в php-скрипте на сервере.
<?
if($_COOKIE['S_count']>200) echo "Стоп!";
?>
|
Кто подскажет правильное решение. | |
|
|
|
|
|
|
|
для: Владимир22
(05.06.2013 в 13:49)
| | Для начала прочтите это http://learn.javascript.ru/cookie, а то у вас что-то невразумительное написано.
А уже потом об одной тонкости установки. | |
|
|
|
|
|
|
|
для: Владимир22
(05.06.2013 в 13:49)
| | Зайти на сервер и сделать наглядный пример?
http://wowa55.pz9.ru/view_count.html | |
|
|
|
|
|
|
|
для: Deed
(05.06.2013 в 17:35)
| | Что же вы всем пуляете jQuery, даже тогда когда о нем и речи не идет. Ну не знаете вы JS, ну это же не повод по всем мелочам грузить библиотеки и остальным. | |
|
|
|
|
|
|
|
для: confirm
(06.06.2013 в 07:37)
| | Жду не дождусь, когда jQuery включат в состав браузеров (почему-то мне кажется, что это произойдет) и сомнения грузить или не грузить кончатся =) | |
|
|
|
|
|
|
|
для: Sfinks
(06.06.2013 в 08:04)
| | Если его "прикрутят" к браузерам, то будет полный капут как и с Flash. Об этом забывать не стоит, и не стоит думать, что jQuery, это механизм думающий за нас. | |
|
|
|
|
|
|
|
для: confirm
(06.06.2013 в 07:37)
| | Да какая в данном случае разница?? У Владимира в проекте jQuery прикурочен изначально.
Так почему бы не воспользоваться? | |
|
|
|
|
|
|
|
для: Deed
(06.06.2013 в 08:08)
| | Разница очень большая.
Во первых судя по коду автора, не скажешь, что "в проекте jQuery прикурочен изначально", в коде вообще бардак.
Во-вторых, разница очень велика в размерах, и если делать что-то пустяковое, то забудьте о библиотеках, это уже вред.
В третьих, то что вы написали еще не факт что будет работать на все 100%, так как вы используете jQuery исключительно полагаясь только на него, а не на свои знания, а при установке cookie есть несколько моментов, о которых нужно знать, и jQuery тут не помощник, за вас он этого не сделает, знать нужно вам. | |
|
|
|
|
|
|
|
для: confirm
(06.06.2013 в 08:17)
| | Я знаю об этих нюансах.
Но у меня необъяснимая и стойкая идиосинкразия на JS-код - меня чуть ли не выворачивает при "подсчете верблюдов" во всех этих getElementsById...
И мне кажется, что если использование jQuery неприемлемо, автор вопроса сам об этом сообщит.
Я вполне разделяю Ваше негодование по поводу неоправданного использования фреймверков. У меня такое же отношениe к подобным "костылям" в php - предпочитаю "чистый" код. И красивый.
Но не в JS. | |
|
|
|
|
|
|
|
для: Deed
(06.06.2013 в 08:29)
| | У меня нет никакого негодования, у меня есть непонимание когда вы пуляете кодом необдуманным. И тем более, если считать такой код "чистым и красивым".
Если вы знаете об этих тонкостях, но опускаете их, то о какой чистоте может идти речь?
Дело не в библиотеках как таковых, дело в разуме. Я вас когда либо называл глупцом? Нет, как никого и других здесь, хотя извиняюсь, огрызнулся однажды на сопливого недоумка, но бывает, когда разозлят.
Но я вам неоднократно говорил - вы не думаете, вы знаете jQuery так же плохо, как не знаете совсем и JS. И проблема этого как раз в том, что вы не знаете последнего. А уже причина этого мне не важна - воротит вас, лень ваша... Это уже ваши проблемы. Но эти проблемы отражаются в проблемности вашего кода, ибо вы используете jQuery просто по незнанию.
Вспомните последнюю тему, в которой я дал комментарий по вашему коду, хотя и не вам лично, а лишь упомянул. Я конечно понимаю, что это вам "костыль" был, хоть вы и смолчали. Но давайте по полочкам:
И так, требовалось скрывать элементы меню, которое к великому ужасу построено на таблице. Хотя это очень плохо, ну коли хочется или не понимают, что это плохо, будем с таблицей работать. Но что сделали вы, вы помните код свой? Ваш код, это плод полного незнания DOM-структуры документа.
Требовалось закрывать строки таблицы принадлежащие субкаталогам. Что вы сделали? Да ничего, просто наворотили кучу строк "честно" перебирающих ячейки таблицы. А зачем? Ведь даже в свете последних достижений французской "демократии" очень легко запомнить - DOM, это тот же Дом, который также ассоциируется с семьей. И в DOM, как и в Дом кроме сестер есть и братья. Разница только в том, что DOM, это исключительно "французская" семейка, в которой нет мамы и папы, одни только родители - Родитель 1, Родитель 2... и так до .... на радость французскому парламенту. Вот только уже по этому можно навсегда запомнить - в DOM-структуре документа есть братские отношения!
Именно с братьями в данном случае надо работать, а не с дочками как это вы сделали. Ведь требовалось простое - скрывать братьев "младших". А для того, чтобы не скрыть и "одногодок" при этом, достаточно пометить братьев "одногодок". И весь код, это всего лишь одна строка:
<style>
#menu {border: 1px solid #000; cursor: default;}
#menu tr {display: none;}
#menu td {padding-left: 20px;}
.second, .sub {display: block !important;}
.sub {cursor: pointer;}
.second td {width:400px; padding:4px !important; background: #eee; border: 1px solid #000; font-weight: bold}
</style>
<script>
$(function(){
$("#menu tr.second").click(function() {
$(this).nextUntil("tr.second").toggleClass("sub");
});
});
</script>
<table id="menu">
<tr class="second"><td colspan="5">Категория 1</td></tr>
<tr><td>1.1</td><td>1.2</td><td>1.3</td><td>1.4</td><td>1.5</td></tr>
<tr><td>1.1</td><td>1.2</td><td>1.3</td><td>1.4</td><td>1.5</td></tr>
<tr class="second"><td colspan="5">Категория 2</td></tr>
<tr><td>2.1</td><td>2.2</td><td>2.3</td><td>2.4</td><td>2.5</td></tr>
<tr><td>2.1</td><td>2.2</td><td>2.3</td><td>2.4</td><td>2.5</td></tr>
<tr><td>2.1</td><td>2.2</td><td>2.3</td><td>2.4</td><td>2.5</td></tr>
<tr class="second"><td colspan="5">Категория 3</td></tr>
<tr><td>3.1</td><td>3.2</td><td>3.3</td><td>3.4</td><td>3.5</td></tr>
<tr class="second"><td colspan="5">Категория 4</td></tr>
<tr><td>4.1</td><td>4.2</td><td>4.3</td><td>4.4</td><td>4.5</td></tr>
</table>
|
Создатели jQuery прекрасно знают и DOM, и JavaScript, потому и создали хорошую библиотеку. Но библиотеку для разумных действий, а не для замусоривания от непонимания. А вы еще говорите о чистоте. | |
|
|
|