Подсчет кликов по ссылке продукта от Твиттер.

Страница и её исходный код - Для просмотра ссылки Войди или Зарегистрируйся (код под спойлером из поста выше)
Кликаете по ссылке и получаете в окошке видите его ID.
Клик по "Твитнуть1" - Для просмотра ссылки Войди или Зарегистрируйся, клик по "Твитнуть3" - Для просмотра ссылки Войди или Зарегистрируйся
 
Это я знаю. Спасибо за деталировку! Но вопрос у меня не в этом, а в: как же вывести переменную? Вот так: $id?
Окошко для показа через форму и это ясно.
 
Если я правильно понял вы не можете послать данные в php.

1 вариант при котором после клика не будет происходить редирект по href="Для просмотра ссылки Войди или Зарегистрируйся" и увидите ID в alert, возвращаемый php кодом
<html>
<body>
<a href="Для просмотра ссылки Войди или Зарегистрируйся" id="twitter-1" class="twitter-share-button" data-url="none" data-text="Текст твита" data-lang="ru" data-count="none">Твитнуть1</a>
<a href="Для просмотра ссылки Войди или Зарегистрируйся" id="twitter-2" class="twitter-share-button" data-url="none" data-text="Текст твита" data-lang="ru" data-count="none">Твитнуть2</a>
<a href="Для просмотра ссылки Войди или Зарегистрируйся" id="twitter-3" class="twitter-share-button" data-url="none" data-text="Текст твита" data-lang="ru" data-count="none">Твитнуть3</a>
<a href="Для просмотра ссылки Войди или Зарегистрируйся" id="twitter-4" class="twitter-share-button" data-url="none" data-text="Текст твита" data-lang="ru" data-count="none">Твитнуть4</a>
<!-- подключаем jquery -->
<script type="text/javascript" src="Для просмотра ссылки Войди или Зарегистрируйся"></script>
<!-- вешаем onclick -->
<script>
$(document).ready(function () {
$(".twitter-share-button").click(function(event) {
$.ajax({
type: "POST",
url: "ajax.php",
data: ({id : $(this).attr("id")}),
success: function(msg){
alert( "Return: " + msg );
}
});
return false;
});
});
</script>
</body>
</html>

код ajax.php:

<?php
$id = $_POST['id'];
echo 'received ID='.$id;
exit;
?>[/spoil]

2 вариант при котором после клика будет происходить редирект на Для просмотра ссылки Войди или Зарегистрируйся, но не не увидите alert с ID элементом, возвращаемого php скриптом.
Это подходит для вас, так как обозначенная вами цель - засчитать клик. Клик будет засчитан, пользователь не увидит никаких alert() и произойдёт редирект на твиттер.
[spoil]<html>
<body>
<a href="Для просмотра ссылки Войди или Зарегистрируйся" id="twitter-1" class="twitter-share-button" data-url="none" data-text="Текст твита" data-lang="ru" data-count="none">Твитнуть1</a>
<a href="Для просмотра ссылки Войди или Зарегистрируйся" id="twitter-2" class="twitter-share-button" data-url="none" data-text="Текст твита" data-lang="ru" data-count="none">Твитнуть2</a>
<a href="Для просмотра ссылки Войди или Зарегистрируйся" id="twitter-3" class="twitter-share-button" data-url="none" data-text="Текст твита" data-lang="ru" data-count="none">Твитнуть3</a>
<a href="Для просмотра ссылки Войди или Зарегистрируйся" id="twitter-4" class="twitter-share-button" data-url="none" data-text="Текст твита" data-lang="ru" data-count="none">Твитнуть4</a>
<!-- подключаем jquery -->
<script type="text/javascript" src="Для просмотра ссылки Войди или Зарегистрируйся"></script>
<!-- вешаем onclick -->
<script>
$(document).ready(function () {
$(".twitter-share-button").bind('click', function() {
$.ajax({
type: "POST",
url: "ajax.php",
data: ({id : $(this).attr("id")})
});
});
});
</script>
</body>
</html>

код ajax.php:

<?php
$id = $_POST['id'];
echo 'received ID='.$id;
exit;
?>
 
У меня "ничерта" не работает. Мне просто нужно, чтобы при клике на ссылку открывалось окно для твита и появлялась какое-то уникальное число. В данном случае ид.
1 вариант и 2-й почему-то ничего не выдают.(

Что у меня есть:
- скипт для продукта от Твитера
Скрытое содержимое доступно для зарегистрированных пользователей!


- ссылки
Скрытое содержимое доступно для зарегистрированных пользователей!


Мне нужно, чтобы зарабатывал примерно такой код:
if($_POST['id'] == $pro['id']){echo 'Тра-та-та';}
$_POST['id'] - id, который должен определять нажатую ссылку.
$pro['id'] - id, выводящийся с БД уникального твита.
Все это во while();

А именно

while (){
echo '
<a href="Для просмотра ссылки Войди или Зарегистрируйся" id="'.$pro['id'] .'" class="twitter-share-button" data-url="none" data-text="'.rawurldecode($po['text']).'" data-lang="ru" data-count="none">Твитнуть</a>
';
if($_POST['id'] == $pro['id']){Нужный запрос в БД}
}

Эту идею я не знал- id="'.$pro['id'] .'". Вы дали ее, по сколько скрипты не знаю.

На странице кроме скрипта для твита еще есть:
Скрытое содержимое доступно для зарегистрированных пользователей!
Естественно работающий через onclick="upage()" в ссылке.

Все работало, если бы при нажатии на ссылку выдавался ИД твита, сравнивался с БД и заносились данные в БД.

Думаю нормально растолковал.
 
За jquery спасибо, а пхп написано уже. Просто нужен был клик.
 
onclick не работает потому что скрипт от твиттер заменяет ссылку на свой iframe.
Например можно обернуть кнопку твиттера каким нибудь тегом с классом ид продукта и его использовать
Код:
<span class="459">
        <a href="https://twitter.com/share" class="twitter-share-button" data-url="none" data-text="Текст твита" data-lang="ru" data-count="none">Твитнуть</a>
    </span>
ещё после скрипта от твитера надо добавить отслеживание действий пользователя, например для клика
Код:
    <script>
    window.twttr = (function (d,s,id) {
        var t, js, fjs = d.getElementsByTagName(s)[0];
        if (d.getElementById(id)) return; js=d.createElement(s); js.id=id;
        js.src="//platform.twitter.com/widgets.js"; fjs.parentNode.insertBefore(js, fjs);
        return window.twttr || (t = { _e: [], ready: function(f){ t._e.push(f) } });
        }(document, "script", "twitter-wjs"));
 
//отслеживаем действия
    twttr.ready(function (twttr) {
        twttr.events.bind('click', function(event){
     
            //если подключена jquery библиотека отправляем запрос через ajax
            $.get('count.php?id='+event.target.parentElement.className);
     
            //если нет jquery тогда используем img
            //var img = document.createElement('img');
            //img.src = 'count.php?id='+event.target.parentElement.className;
            //img.style.display = 'none';
            //document.body.appendChild(img);
        });
    });
    </script>
если jquery подключен то можно использовать аякс $.get, если нет то просто тег картинки генерируем как выше говорилось и в скрипте закоментировать строку с $.get и раскоментировать 4 строки дальше где тег генерирует. Ссылка будет на php скрипт который подсчитает например так
PHP:
<?
$id = intval($_GET['id']);
if($id>0){
    $count = intval(file_get_contents('count.txt')) + 1;
    file_put_contents('count.txt', $count);
}

Прицепил пример.

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

Вложения

  • twitter_onclick.zip
    1,3 KB · Просмотры: 5
Назад
Сверху