1

特定のdivのクリック数をカウントするこのjQueryスクリプトがあり、2回目のクリックでユーザーをカスタムURLにリダイレクトします。スクリプトは機能し、ユーザーがページを離れてもクリックをカウントします。

function traffic(){
    var traffic = $('.model').data("traffic");
    if(traffic){
        var nbc = localStorage['nbc']||0;
        $('.model a').click(function(){
            localStorage['nbc'] = ++nbc;
            if(nbc%2==0){
                window.open(traffic, '_blank');
            }
        });
    }
} 

今、私は ajax の完全な初心者です (実際には、私は ajax について何も知りません。期限切れのプログラマーではなくウェブマスターです)、助けが必要です:

アクション時に2回目のクリックをphp変数に送信するajax呼び出しが必要なので、次のようなコードを使用できます(別のスクリプトと競合する「window.open」メソッドを回避しますページで使用):

   if($number_of_clicks == 2){
       echo 'my new link, a method which will save me from using window.open';
   } else {
       echo 'my ragular link';
   }

それはできますか?

アップデート

説明させてください、はっきりしないのは私のせいです。

ユーザーが私のサイトに入り、通常のリンクをクリックします。Jquery はそのイベントを保存し、ユーザーは内部ページに移動します。

彼がホーム ボタンを押すと、ajax はそのイベントを php 変数に送信するので、$myvar=1 になります。

これで、自分のサイトの特定のリンクを次のように変更できます。

if($myvar == 1){
           echo 'my new link';
       } else {
           echo 'my ragular link';
       }

そして今、ユーザーがそのリンクをクリックすると、新しいリンクに移動します。

私が少しはっきりしていることを願っています。

タイ!

4

2 に答える 2

0

PHP へのクリックを得る唯一の方法は、AJAX リクエストのみです。例えば:

$.get('/clickonce.php');

そして、PHPで次のことができます:

<?php
$myvar = 1;
?>

しかし、これは完璧ではありません。clickonce.php コードが呼び出されますが、新しいページ リクエストであるため遅延が発生します。そのため、インターネット/サーバーの応答が遅いと、実際にログに記録されるまでに数秒以上かかる場合があります。

あなたのwindow.openが別のスクリプトと競合していることを考えると、それはjavascriptであると私は思います。

var clickedOnce = false;
function traffic(){
    var traffic = $('.model').data("traffic");
    if(traffic){
        var nbc = localStorage['nbc']||0;
        $('.model a').click(function(){
            localStorage['nbc'] = ++nbc;
            if(nbc%2==0){
                window.open(traffic, '_blank');
            } else {
                clickedOnce = true;
            }
        });
    }
} 

他のJavaScriptスクリプトでチェックできるようになりましたif (!clickedOnce) { //do something }

于 2012-12-06T11:43:32.827 に答える
0

jQuery を使用して AJAX get リクエストを簡単に作成できます。

$.get('/your.php', function(url) {
     // value echoed by your php page will be available in the url variable passed into this function.
     // You can do what you want with it.
     alert(url);
});
于 2012-12-06T11:43:36.023 に答える