sshazoxt
Usuario Novato
Usuario Novato

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

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:
Ir al subforo:
Permisos:
TU NO PUEDES Escribir nuevos temas
TU NO PUEDES Responder a los temas
TU NO PUEDES Editar tus propios mensajes
TU NO PUEDES Borrar tus propios mensajes
Temas similares
No se han encontrado temas similares