Strict Standards: Resource ID#34 used as offset, casting to integer (34) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401

Strict Standards: Resource ID#36 used as offset, casting to integer (36) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401

Strict Standards: Resource ID#37 used as offset, casting to integer (37) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401
ТвойWeb :: Версия для печати :: Помогите, с кликом, мышки на объект.
ТвойWeb » WebMaster класс » JavaScript » Помогите, с кликом, мышки на объект.

Страниц (3): [1] 2 3 »
 

1. victor - 12 Февраля, 2009 - 04:04:38 - перейти к сообщению
Здравствуйте, немогу заставить чтобы функция выполнялась только по клику.
Функция выполняется дважды, при загрузке и по клику. А надо только по клику.

просто рекламодатели последнее время постоянно просят подсчет кликов. Сами в этом не бумбум. Поэтому надо сделать объект поверх баннера, который уже заносит данные в БД о клике.

JavaScript:
CODE:

<script type="text/javascript">
function klikREK()
{
document.getElementById('rek').innerHTML="<? count_rek_klik('flash.swf'); ?>";
}
</script>


На странице:
CODE:

<div id=rek onclick=klikREK()>
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0" width="100%" height="100">
<param name="movie" value="./flash.swf" />
<param name="quality" value="high" />
<embed src="./flash.swf" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="100%" height="100"></embed>
</object>
<div>
2. Systemnik - 12 Февраля, 2009 - 04:50:33 - перейти к сообщению
victor,
так не делается... Вперед выполняется PHP, ведь он на сервере! Значит ваш вариант не катит, юзайте AJAX, тоесть по событию он клик отправляется какой-то запрос на сервер,
а сервер уже вызывает функцию count_rek_klik.
3. Systemnik - 12 Февраля, 2009 - 04:54:16 - перейти к сообщению
Вот реализация:
CODE:
function klikREK()
{
var php_script = document.createElement('script');
php_script.type = "text/javascript";
php_script.src = "server_php_script.php?click=flash.swf";
document.body.appendChild(php_script);
}


Код server_php_script.php:
CODE:
<?php
if (isset($_GET['click'])) {
count_rek_klik('flash.swf');
}
?>


А вообще, не в обиду будет сказано, но рано вам еще заниматься заработком на сайте,
если вы пхп и джс незнаете... Огорчение
4. victor - 12 Февраля, 2009 - 05:27:47 - перейти к сообщению
Systemnik , я вообщето не спрашивал про взаимодействие php с javascript.
Я просил помощи с событием onclick
У меня срабатывает событие которое прописанно в функции JavaScript при загрузке.

А во всем остальном у меня все впорядке. А данная конструкция позволяет работать php с JavaScript без всяких GET и POST.
Такчто врут в интернете что при помощи Java нельза запустить php на исполнение. Для этого ненадо формы делать чтоб получить глобальные переменные. И без них все работает.
Если бы у меня такие конструкции не работали бы, я бы их не использовал. Все движется, все меняется. Если серверу объявленно, что он должен выполнить функцию php на исполнение, он ее исполнит.

Лучше напиши как в Java сделать проверку что действительно был клик. Если ты считаешь, что надо передавать параметр в функцию то можно написать вот так.

CODE:

<script type="text/javascript">
function klikREK(rek)
{
document.getElementById('rek').innerHTML="<? count_rek_klik("+rek+"); ?>";
}
</script>

<div id=rek onclick=klikREK('flash.swf')>
...
</div>
5. Furax - 12 Февраля, 2009 - 06:48:16 - перейти к сообщению
victor
Кто так делает?! Как можно отлавливать в HTML событие щелчка на флэш-баннере? Флэш - это отдельная стихия, и сценарий для клика в этом случае должен быть внедрён в сам баннер. Всплытия событий из Flash в JS нет. Либо используй баннер-картинку, либо модифицируй флэшку.
6. victor - 12 Февраля, 2009 - 07:40:35 - перейти к сообщению
Furax , я знаю что надо во внутрь флеша вставлять счетчик. просто меня рекламодатели задолбали, постоянно им одно и тоже твердить приходится.
Я не отлавливаю шелчек на баннере, я отлавливаю щелчек на div. Тоесть на объекте. Если его поймать, то это решит поставленную задачу.
А готовый пример облегчит всем геморой с счетчиками.

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

Кстати приведенный пример Systemnik тоже не работает. уж незнаю почему. Но к файлу server_php_script.php он не оброщается и естественно не меняет количество кликов в БД.

Ну доведите хотябы до ума его пример или дайте рабочий вариант, гляну почему у меня не срабатывает. В JS я не профи, поэтому может что и не так пишу.
7. Furax - 12 Февраля, 2009 - 07:43:34 - перейти к сообщению
На HTML универсальный рабочий во всех браузерах вариант обработки щелчка на флэше не сделать. Точка.
8. victor - 12 Февраля, 2009 - 07:45:24 - перейти к сообщению
Да не на флеш а на div надо сделать
9. Systemnik - 12 Февраля, 2009 - 07:50:29 - перейти к сообщению
victor,
врут. Ха-ха Да вы что? Ну надоже! Оказывается JavaScript управляет интерпритатором PHP, чтож спасибо -- просветили! Улыбка

Furax,
ты знал? Во! как! Ха-ха Ха-ха
10. Systemnik - 12 Февраля, 2009 - 07:52:51 - перейти к сообщению
Единственный случай когды вы правы, это что-то типа:
CODE:
<?php
function a() {
echo "alert('!!!');";
}
?>
<script>
function JS() {
el.innerHTML = "<? a(); ?>"
}
</script>

Вот тут правда...

Форум на AlfaSpace.NET


Powered by ExBB
ExBB FM 1.0 RC1 by TvoyWeb.ru
InvisionExBB Style converted by Markus®

[Script Execution time: 0.0395]     [ Gzipped ]



Notice: ob_end_flush(): failed to send buffer of ob_gzhandler (1) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/page_tail.php on line 33