la idea es para un foro, que al hacer click en un enlace aumente un contador "indicando el numero de personas que lo han descargado"
yo soy el administrador y cree un nuevo boton BBcode que es hasi:
[counter={TEXT2}]{TEXT1}[/counter]
el TEXT2 es el nombre del contador, el TEXT1 es el enlace o alguna palabra X que al hacer click aumenta el counter
<fef onclick="funtion_contador('{TEXT2}')">{TEXT1}</fef> <font color="#004000" id="{TEXT2}"><script>
funtion_contador('{TEXT2}')
</script></font>
y esto es por lo que se reemplaza, le puse fef por que es un tag que no tiene ninguna accion predefinida.
y la parte del script que va en la cabezera es:
function motorAjax(){
var http;
try{
http=new XMLHttpRequest();
}
catch(err1){
try{
http=new ActiveXObject("Msxml2.XMLHTTP");
}
catch(err2){
try{
http=new ActiveXObject("Microsoft.XMLHTTP");
}
catch(err3){
http=false;
}
}
}
return http;
}
obj = motorAjax();
function funtion_contador(n){
var idxx=n;
funcion_contadorx();
function funcion_contadorx(){
var myurl = 'contadores/contador.php';
var modurl = myurl + "?x="+ n;
// alert(archivo);
obj.open('GET',modurl,true); // abre conecion al servidor, peticion al servidor
obj.onreadystatechange = respuesta_contador; //se fija en el stado de cambio y lo embia a respuesta
obj.send(null); // envia
}
function respuesta_contador(){
if(obj.readyState == 4){
if(obj.status == 200){
//resolvio
document.getElementById(idxx).innerHTML = obj.responseText;
}
}
}
}
si desean tambien pongo el codigo de contador.php
<?php
$campo = $_GET["x"]; //campo a buscar
$cn = mysql_connect("localhost","xxxxx","usuario");
mysql_select_db("counter_download");
$sql="select COUNT(*) from `contador` where nombre='$campo'";
$result=mysql_query($sql);
if (mysql_result($result,0) ==1){
$sql="SELECT `counter` FROM `contador` WHERE nombre = '$campo'";
$rs= mysql_query($sql,$cn);
$row = mysql_fetch_array($rs);
$mm = $row[0];
$mm=$mm+1;
$sql = "UPDATE `counter_download`.`contador` SET `counter` = '$mm' WHERE nombre = '$campo' ;";
mysql_query($sql);
}else{
$sql = "INSERT INTO `counter_download`.`contador` ( `nombre` , `counter` ) VALUES ( '$campo', '0' )";
mysql_query($sql);
$mm='0';
}
$sql="SELECT `counter` FROM `contador` WHERE nombre = '$campo'";
$rs= mysql_query($sql,$cn);
$row = mysql_fetch_array($rs);
echo $row[0];
?>
todo este chocolate funciona cuando hay un solo enlace, el problema biene cuando hay mas de dos enlaces.
lo he revisado y si hace las consultas de todo, el problema biene al entregar los datos, al parecer superpone todo con el ultimo dato obtenido y en vez de mostrar el contador de todos los links muestra en todos el mismo contador del ultimo.
Humm... un ejemplo mas, al escribir un post, esta para ponerlo de esta forma:
[counter=pack001][url=http://holamundo.com]Descarga primer pack[/url][/cpunter]
como digo el problema biene al poner dos o mas de estos, y solo ocurre al cargar por primera vez la pag, ya que al ir haciendo click en los enlaces van mostrando los datos que si deven ir.
Espero haverme echo entender, al no tener muchos conocimientos, no puedo saber donde estoy fallando, tal vez en la parte del motorajax o tal vez al poner
<script>
funtion_contador('{TEXT2}')
</script></font>
para que se carge al iniciar la pag, por eso necesito su ayuda.
Y otra cosa mas, me gusta esta forma de escribir los mensajes que tienen aquí creo que esta echo en ajax no?, es pocible implementarlo en mi foro?, o es un codigo privado echo por miarroba.
Gracias