Autor | Zpráva | ||
---|---|---|---|
miskith Profil |
#1 · Zasláno: 13. 12. 2009, 21:33:12
Zdravím. Sice AJAX patří do javascriptu, ale já potřebuji AJAX ,,spojený" s PHP.
Chtěl bych se zeptat, jak udělat toto: Mám obrázek, který odkazuje třeba na http://www.google.cz a já potřebuju, aby se při kliknutí přesměrovalo na ten web a zároveň se do databáze přičetlo kliknuto. Potřeboval bych, aby to vyvolalo toto: function banner_click($banner_id, $banner_clicks, $banner_buy_clicks) { if ($banner_clicks+1>=$banner_buy_clicks){$change_status = ", banner_status=0";} else {$change_status = "";} $result = mysql_query("UPDATE ".DB_BANNERS." SET banner_clicks=banner_clicks+1".$change_status." WHERE banner_id=".$banner_id.""); } Jde to nějako? Pokud ano, byl bych vděčný, kdybyste mi někdo poradil/napsal script. Děkuji. |
||
Nox Profil |
#2 · Zasláno: 13. 12. 2009, 21:40:04
ajax je JS spojený s PHP (obvykle)
obrázku přidáš akci při události onclick která zavolá soubor php, ve kterém se bude volat tvoje funkce |
||
miskith Profil |
#3 · Zasláno: 13. 12. 2009, 21:45:44 · Upravil/a: miskith
To sem měl a ono to zapisovalo pokaždé (i pouze při zobrazení) do databáze jako bych kliknul.
EDITED: Ještě jednou sem si pozorně přečetl cos napsal a měl sem to trochu jinak...zkusim ;) EDITED2: Asi nic...pořád mi to vepisuje i při zobrazení EDITED3: Zkusil sem dát jednoduchou věc. Prostě obyčejnej alert a ten mi taky naskočil při načtení stránky. |
||
Nox Profil |
#4 · Zasláno: 13. 12. 2009, 22:14:59
Asi...to máš špatně :) ...nejlíp bude když dáš odkaz
|
||
miskith Profil |
#5 · Zasláno: 13. 12. 2009, 22:40:28 · Upravil/a: miskith
web...ale je to pouze web na ,,vývoj"
Jinak už si sem úplně jistej, že mám blbost v kódu...ale JS neumim, takže si chybu nedokážu opravit, proto bych tě chtěl poprosit, abys mi nenadával ani se mi nesmál :D... <?php if (!defined("IN_FUSION")) { die("Access Denied"); } function banner_click($banner_id, $banner_clicks, $banner_buy_clicks) { if ($banner_clicks+1>=$banner_buy_clicks){$change_status = ", banner_status=0";} else {$change_status = "";} $result = dbquery("UPDATE ".DB_BANNERS." SET banner_clicks=banner_clicks+1".$change_status." WHERE banner_id=".$banner_id.""); } $result = dbquery("SELECT * FROM ".DB_BANNERS." WHERE banner_status=1 ORDER BY RAND() LIMIT 1"); if ($num = dbrows($result)!=0){ $banner = dbarray($result); function check_banner($banner) { if ($banner['banner_shows']==$banner['banner_buy_shows'] AND $banner['banner_buy_shows']!=0){ $result = dbquery("UPDATE ".DB_BANNERS." SET banner_status=0 WHERE banner_id=".$banner['banner_id'].""); $banner = dbarray(dbquery("SELECT * FROM ".DB_BANNERS." WHERE banner_status=1 ORDER BY RAND() LIMIT 1")); if ($num = dbrows($result)!=0){check_banner($banner);} } elseif ($banner['banner_clicks']==$banner['banner_buy_clicks'] AND $banner['banner_buy_clicks']!=0){ $result = dbquery("UPDATE ".DB_BANNERS." SET banner_status=0 WHERE banner_id=".$banner['banner_id'].""); $banner = dbarray(dbquery("SELECT * FROM ".DB_BANNERS." WHERE banner_status=1 ORDER BY RAND() LIMIT 1")); if ($num = dbrows($result)!=0){check_banner($banner);} } else { include LOCALE.LOCALESET."infusions/banner_system_panel/banner_system_panel.php"; opentable($locale['200']); echo "<table width='100%'><tr><td align='center'><a href='".$banner['banner_url']."' onclick='".banner_click($banner['banner_id'], $banner['banner_clicks'],$banner['banner_buy_clicks'])."'><img src='".$banner['banner_image']."' alt='".$banner['banner_name']."'".($banner['banner_title'] != "" ? " title='".$banner['banner_title']."'" : "")."></a></td></tr></table>\n"; if ($banner['banner_shows']+1 == $banner['banner_buy_shows']){$change_status = ", banner_status=0";} else {$change_status = "";} $result = dbquery("UPDATE ".DB_BANNERS." SET banner_shows=banner_shows+1".$change_status." WHERE banner_id=".$banner['banner_id'].""); closetable();} } check_banner($banner); } ?> PS: Nediv se, že tam sou divné funkce jako třeba dbquery, ale je to panel pro CMS...konkrétně pro PHP-Fusion. |
||
miskith Profil |
#6 · Zasláno: 14. 12. 2009, 21:19:35 · Upravil/a: miskith
tak už sem to vyřešil...pomohl mi tento návod... pošlu sem kód a pokud se někomu bude chtít, mohl by se na něj kouknout a napsat mi, jestli ta nemám nějaký zbytečnosti navíc ;).
+ Dalo by se nějako ošetřit, že když někdo nakliká 50x na obrázek, tak se to započítá jen jednou? (Nějako jinak než zapisováním IP do db) //Add click echo "<script language='JavaScript' type='text/javascript'>\n"; echo "var xmlhttp;\n"; echo "function banner_click(bannerid, bannerclicks, bannerbuyclicks)\n"; echo "{\n"; echo "xmlhttp=GetXmlHttpObject();\n"; echo "if (xmlhttp==null)\n"; echo " {\n"; echo " return;\n"; echo " }\n"; echo "var url='".INFUSIONS."banner_system_panel/banner_click.php';\n"; echo "url=url+'?bannerid='+bannerid;\n"; echo "url=url+'&bannerclicks='+bannerclicks;\n"; echo "url=url+'&bannerbuyclicks='+bannerbuyclicks;\n"; echo "xmlhttp.onreadystatechange=stateChanged;\n"; echo "xmlhttp.open('GET',url,true);\n"; echo "xmlhttp.send(null);\n"; echo "}\n"; echo "function stateChanged()\n"; echo "{\n"; echo "if (xmlhttp.readyState==4)\n"; echo "{\n"; echo "document.getElementById('txtHint').innerHTML=xmlhttp.responseText;\n"; echo "}\n"; echo "}\n"; echo "function GetXmlHttpObject()\n"; echo "{\n"; echo "if (window.XMLHttpRequest)\n"; echo " {\n"; // code for IE7+, Firefox, Chrome, Opera, Safari echo " return new XMLHttpRequest();\n"; echo " }\n"; echo "if (window.ActiveXObject)\n"; echo " {\n"; // code for IE6, IE5 echo " return new ActiveXObject('Microsoft.XMLHTTP');\n"; echo " }\n"; echo "return null;\n"; echo "}\n"; echo "</script>\n"; //End add click |
||
Časová prodleva: 14 let
|
0