El contador lo hice con php y funciona bien... mi problema es que como necesito disparar la funcion de php en un evento onClick y no se puede hacer directamente y lo hice con ajax. El resultado es que me envia el usuario, y me cuenta los clicks pero no me envia el id de la pagina y guarda todo en la DB pero con el id de la pagina en blanco... este resultado es igual a lo que me da ponerle <a href="contador.php"><img src="imagen.jpg"/></a>
alguien sabe com puedo resolver esto? o hacerlo de otra manera?
a continuacion dejo mi codigo por si sea más elocuente que yo
lo que dispara la accion
Código:
if ($showprint) echo spoAddLink($display, "print.png", _PP, "<a href='javascript:;' onclick='imprimir()'>"); else $icount--;
El codigo ajax
Código:
el codigo php por si hiciera falta<script type="text/javascript" src="libraries/jquery/jquery.js"></script> <script> jQuery.noConflict(); function imprimir(){ var user = document.getElementById("username"); var id = document.getElementById("idLink"); if(user == "" || id == ""){ alert('aca no hay nada'); }else{ jQuery.ajax({ type: "POST", url: "modules/mod_spo/contadorClicks.php", data: 'user='+ user + 'id='+ id, cache: false, success: function(contarClicks) { window.print(); return false; } }); } } </script>
Código:
function contarClicks(){ $idLink = JRequest::getVar('id'); $user =& JFactory::getUser(); $username=$user->get('username'); $db = & JFactory::getDBO(); $db -> get('jos_clicks'); $comprobar = mysql_query("SELECT * FROM jos_clicks WHERE idLink='$idLink'"); $existencia = mysql_num_rows($comprobar); if ($existencia >= 1){ $update = "UPDATE jos_clicks SET clicks=(clicks + 1) WHERE idLink='$idLink'"; mysql_query($update) or die (mysql_error()); echo'se actualizo clicks'; /* header('location:http://'.$route);*/ }else{ $saveUrl = "INSERT INTO jos_clicks VALUES ('', '$idLink', '$username', '1')"; mysql_query($saveUrl) or die (mysql_error()); echo'se agrego url'; /* header('location:http://'.$route);*/ } } return contarClicks();