InicioAyuda para webmastersJava y Javascript
Responder
Problemas al implementar Contador de cliks en bbcode
Haz clic para ver el perfil del usuario

Usuario Novato
Usuario Novato

#1

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:

Código:
[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

Código:
<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:

Código:
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

Código:
<?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:

Código:
[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

Código:
<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

ATENCIÓN: Este tema no tiene actividad desde hace más de 6 MESES,
te recomendamos abrir un nuevo tema en lugar de responder al actual
Opciones:
Suscribir

Permisos:

TU NO PUEDES Escribir nuevos temas en este foro
TU NO PUEDES Responder a los temas en este foro
TU NO PUEDES Editar tus propios mensajes en este foro
TU NO PUEDES Borrar tus propios mensajes en este foro
Ahora son las 17:19 UTC+02:00 DST
Ir al subforo:
Temas similares
No se han encontrado temas similares