Autor Zpráva
PavelMekota
Profil *
Potřeboval bych něco jako <a href="http://www.seznam.cz" onclick="/odkaz.php?id=34">Odkaz</a>, kde pokud kliknut na odkaz, tak ať se dostanu na seznam.cz, ale zároveň ať se provede onclick, kde právě v odkaz.php provedu přičtění do mySQL, že někdo kliknul.
Martin02
Profil
PavelMekota:
Máš asi dvě možnosti. Buďto nebudeš odkazovat na seznam, ale na php soubor, kde přičteš něco do mysql a pak přesměruješ na seznam. Nebo využiješ AJAX (méně spolehlivé).
PavelMekota
Profil *
Chtěl jsem využít druhou možnost i kvůli zpětnému odkazu, který má být viditelný. Přesto bych chtěl počítat proklik - například onclick.


Nyní to zkouším, ale nefunguje. Asi špatný onclick.
<a href="http://www.seznam.cz" onclick="window.location='odkaz.php?id=1'">Odkaz</a>
Davex
Profil
Hledat jsi asi nezkoušel.
Měření počtu návštěv u odkazu!
Počet kliknutí na odkaz
Jak v PHP udělat odkaz se statistikou

Mělo stačit něco takového:
<a href="http://www.example.com" onclick="var ping = new Image(); ping.src = 'odkaz.php?id=1';">Odkaz</a>
Martin02
Profil
PavelMekota
Ten odkaz nedává smysl. Odkazuje na seznam a při kliku na něj se má odkázat na odkaz.php?id=1.
Takže jak jsem psal - využij ajax. Já ho moc používat neumím, ale snad to bude fungovat.

<script src="http://code.jquery.com/jquery-1.9.1.min.js" type="text/javascript"></script> // načteš si jquery
<script type="text/javascript">
  $(document).ready(function() { // po úplném načtení stránky
    $("a.loadAjax").click(function() { // při kliku na odkaz s třídou loadAjax
      $.ajax({
        url: "odkaz.php?id=1" // jaký soubor chci načíst
      });
    });
  });
</script>

<a href="http://www.seznam.cz" class="loadAjax">Odkaz</a>

Jde to mnohem více propracovat - třeba se neřeší problém, když se soubor nepodaří načíst, ale takhle by ti to mělo stačit. Ještě chci varovat, že je to javascript, takže se dá v prohlížeči vymazat, upravit...


Davex:
také řešení :)
Chamurappi
Profil
Reaguji na Martina02:
Ještě chci varovat, že je to javascript, takže se dá v prohlížeči vymazat, upravit...
… a že externí JS brzdí načítání a že je hloupost tahat obří knihovnu tam, kde stačí jeden řádek, a používat XMLHttpRequest tam, kde nepotřebuji návratovou hodnotu.


Reaguji na PavlaMekotu:
Mně se nejlépe osvědčil postup, kdy při onmousedown přepíšu href odkazu na počítací+přesměrovávací skript. Už to tak dělá i Google ve výpisu výsledků hledání, takže… jsme dva, komu se to tak líbí. Provedení by vypadalo nějak takhle:
<a href="http://www.seznam.cz" onmousedown="redir(this, '34')">odkaz</a>
<script>
function redir(a, param)
{
  a.href = "redir.php?url=" + encodeURIComponent(a.href) + "&param=" + param;
  a.onmousedown = null;
}
</script>
… a skript redir.php by si kamsi započítal, že se proklikla adresa (případě by mohl posoudit i ten další parametr) a pak na ni přesměroval.
Str4wberry
Profil
Reakce na Chamurappiho:
Zdá se mi, že to nebude fungovat při používání klávesnice, kdy se vyvolá jen onclick, není-liž pravda?
juriad
Profil
Nelíbí se mi to při onmousedown pravým tlačítkem. To si obvykle chci odkaz zkopírovat a ty mi jej takto pokazíš. Obzvlášť nepříjemné je to u Googlu, když si chci zkopírovat odkaz na PDF, než si jej otevřu v externím prohlížeči. V takovém případě mi nezbývá nic jiného, než jít do historie stahování a vydolovat odkaz odtamtud.

Str4wberry:
Ano, nebude to měřit. Odkaz fuungovat bude.
Chamurappi
Profil
Reaguji na juriada:
V takovém případě mi nezbývá nic jiného
Já to řeším jinak.


Reaguji na Str4wberryho:
To je pravda. Možná by byl lepší onfocus
Ale klávesnicí proklikává odkazy tak drobné množství lidí, že to jsou zanedbatelné ztráty – zanedbatelnější než prokliky od lidí bez JavaScriptu. Úplně stoprocentní měření by bylo vygenerovat rovnou odkaz s hrefem přes počítadlo, bez reakce na události. Což pak trochu kazí dojem z toho, že je odkaz nesledovaný :-)
Str4wberry
Profil
Ten onfocus vypadá funkčně při použití myši, klávesnice i prostu na mobilu: Odkaz
juriad
Profil
Chamurappi:
Firefox bohužel kontextové menu ukazuje při onmousedown v místě stisku, takže tvůj postup mi nefunguje. Škoda.
Chamurappi
Profil
Reaguji na juriada:
Myslím, že to je spíš vlastnost operačního systému.

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Odkud se sem odkazuje


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: