Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Счетчик нажатий на кнопку (https://javascript.ru/forum/misc/44078-schetchik-nazhatijj-na-knopku.html)

Fooog 05.01.2014 16:13

Счетчик нажатий на кнопку
 
Реально ли для wordpress написать вот что... Как правильно подойти к этому...?
Нажимаешь на кнопку, она тебе выводит текст, а то что на кнопку было произведено нажатие отправляется в бд или куда то в файл где к общему числу +1 добавляется.
Вероятно стоит подходить к этому реализацией через javascript. Посоветовали подумать в сторону jquery ajax
Идеальный вариант, это что бы был общий файл-таблица на которой будет выведен список по типу:
№ 143 - 1509 нажатий
№ 144 - 148 нажатий
№ 145 - 735 нажатий
То есть кнопка будет находится в разных записях и каждая иметь свой уникальный текст, который будет показан после нажатия.
Может есть подобные готовые решения?
Нашел кое что, что практически идеально подходит под требование, но немного не то... http://wp-kama.ru/id_430/plagin-dlya...k-counter.html
И вот ещё тематическую статью нашел: http://lifeexample.ru/php-primeryi-s...wordpress.html

Ниже инфа моих попыток решить задачу. Вполне вероятно что я на ошибочном пути и всё что ниже можно не учитывать, а нужно двигаться совершенно в другом направлении.
Относительно нашел решение установкой плагина Kama’s Click Counter и скриптом который идеально подходит для задачи:

<script type="text/javascript">// <![CDATA[
function showTooltip()
{
var myDiv = document.getElementById('tooltip');
var myLink = document.getElementById('link');
if(myDiv.style.display == 'none'){
myDiv.style.display = 'block';
myLink.style.display = 'none';
} else {
myDiv.style.display = 'none';
}
return false;
}
// ]]></script>
<a class="count" href="javascript:;" onclick="showTooltip()" id="link">Показать </a>
<div id="tooltip" style="display: none;">Текст текст текст текст текст</div>


Но есть проблема. Класс которой отвечает за запись +1 клик в админку (class="count") делает свое дело. Но при нажатии, помимо того что скрипт показывает нужный текст, страница переходит по ссылке ?kcccount=javascript:;!p=302 выдавая ошибку:

Цитата:

Ошибка искажения содержимого

Страница, которую вы пытаетесь просмотреть, не может быть показана, так как была обнаружена ошибка при передаче данных.

Пожалуйста, свяжитесь с владельцами веб-сайта и проинформируйте их об этой проблеме.
p=302 id страницы где установлен код.

Интересна реализация через Kama’s Click Counter (очень успешно для задачи подходит этот плагин)
Но когда я добавляю класс count то код преобразуется в ссылку (href="http://site.ru?kcccount=javascript:;!p=302) вместо того что бы просто быть href="javascript:;" а так как это становится ссылкой, меня соответственно перебрасывает.
Проблема, что только лишь если проходишь по ссылке которую создает класс count, (в данном примере это http://site.ru?kcccount=javascript:;!p=302) происходит запись в базу +1 клик. Может как то можно реализовать, что бы count создавал нужный запрос но без редиректа?
_______________________

От ошибки избавился удалив кусок в файле плагина, то есть:

# перенаправляем
		$_url = explode('!p=', $url);
		$url = $_url[0];
		
		if ($is_IIS) {
			header("Refresh:0;url=$url");
		} else {
			if( !headers_sent() ){
				header("Location: $url");
				header("Status: 303");
			} else {
				print "<script>location.replace(\"$url\");</script>";
			}
		}

		exit;


но это проблему не решает. Ссылка всё равно остается активной и помимо того, что открывает нужный текст, перебрасывает на http://site.ru?kcccount=javascript:;!p=302

Сам файл плагина отвечающий за вышеперечисленные действия:
Посмотреть в txt: http://yadi.sk/d/-8d57sQpFUWGM
php файл: http://yadi.sk/d/lnYojg1iFUb5y

Fooog 05.01.2014 16:37

Старался изложить всё максимально подробно, что бы было легче ответить:)
Если кратко, то к прочтению только первая честь сообщения

Fooog 05.01.2014 20:02

Нашел немного инфы на эту тему:
http://wordpress.org/support/topic/a...te-wp-database
http://wordpress.org/plugins/ajax-hits-counter/
http://wordpress.stackexchange.com/q...unter-meta-box

Мог бы кто то это всё оптимизировать?
В первом примере так понимаю парень подключает к постам php. Хотелось бы обойтись без этого
Вот чего ещё нашел:
http://javascript.ru/forum/events/16...-v-jquery.html
почти законченный код
и вот: http://snipcode.ru/catalog.html?snipid=16

Fooog 06.01.2014 02:27

Всем спасибо за помощь:D
Решение:
Юзаем тему: http://zarabotat-na-sajte.ru/uroki-h...po-ssilke.html
Таким вот образом выводим текст:
<a href="javascript:;" id="link" onclick="setrate(2); showTooltip()"> Показать </a></p>
<div id="tooltip" style="display: none;">Тут текст текст текст текст</div>


Часовой пояс GMT +3, время: 01:41.