Foros del Web » Programando para Internet » PHP »

Como poner un contador en un Layer (ó algo similar)?

Estas en el tema de Como poner un contador en un Layer (ó algo similar)? en el foro de PHP en Foros del Web. Hola, sucede que estoy haciendo una página donde pondré el listado de varios productos (digamos 30).... y en el listado voy a poner las caracteristicas ...
  #1 (permalink)  
Antiguo 26/02/2009, 15:39
 
Fecha de Ingreso: febrero-2009
Mensajes: 4
Antigüedad: 15 años, 2 meses
Puntos: 0
Pregunta Como poner un contador en un Layer (ó algo similar)?

Hola, sucede que estoy haciendo una página donde pondré el listado de varios productos (digamos 30).... y en el listado voy a poner las caracteristicas completas de cada producto,

Pero en el espacio destinado para poner el precio del producto, deseo poner un LINK para que si el usuario quiere ver el precio, tenga que hacer clic (y al hacer clic le muestre en una ventana flotante el precio.... pero a su vez mediante un contador, yo poder registrar que el usuario abrio dicha ventana emergente (asi puedo sacar estadisticas de que productos el cliente le intereso ver el precio).

Se me ocurrio lo de una ventana flotante, pues es muy rápido de desplegarse y asi el usuario no tiene que esperar (por ejemplo utilizando si al hacer clic el usuario, la página abriera otra página.... y tampoco pense en utilizar un POP UP, pues ya ven que hoy en dia hay muchos bloqueadores de POP UP y puede ser que el usuario de clic, y vuelva a dar clic (y no le abra nada, pues algun bloqueador lo impide.... y el usuario pienza que no sirve).


Tengo un ejemplo montado en la siguiente dirección: lapiesa(punto)com(diagonal)Ejem(diagonal)ejem(punt o)php

Alli tengo una ventana flotante que se abre al dar clic el usuario en el LINK DE ABRIR, pero el contador que coloque en el LAYER se incrementa con abrir la página (aunque se abra ó no la ventana flotante).


Agradezco su ayuda y sugerencias. Gracias!
  #2 (permalink)  
Antiguo 26/02/2009, 19:12
Avatar de jenusys  
Fecha de Ingreso: diciembre-2008
Ubicación: Ahí mismo.
Mensajes: 216
Antigüedad: 15 años, 3 meses
Puntos: 11
Respuesta: Como poner un contador en un Layer (ó algo similar)?

Bueno, si ya empezaste con el código lo puedes colgar y te ayudamos. Referente al que te cuente con tan solo abrir la página debes poner una condición IF en donde cree y cuente una variable solo si abre o no la parte del código que la contiene. ¿Me explico?
  #3 (permalink)  
Antiguo 26/02/2009, 21:11
 
Fecha de Ingreso: febrero-2009
Mensajes: 4
Antigüedad: 15 años, 2 meses
Puntos: 0
Respuesta: Como poner un contador en un Layer (ó algo similar)?

Hola, pues te comento que el codigo que tengo es realmente sencillo, pues checa en la BD el No. de visitas que alla y lo incrementa en 1, al tiempo que lo actualiza en la BD.:





//Checa el No. de visitas, convierto la variable de la fila 102 al nombre: cvisit
$cvisit = "$row[102]";

//Suma 1 al total de visitas
$cvisit2 = $cvisit+1;

//Creamos la sentencia SQL y la ejecutamos para guardar el nuevo No. de visita
$sSQL="UPDATE basedatos SET cvisit = '$cvisit2' WHERE idarticulo = '$articulo' ";
mysql_query($sSQL)
or die("Error: " . mysql_error());




El problema es que este codigo se ejecuta al abrir la página y necesito que solo se ejecute si el cliente abre la ventana flotante. pues es cuando el cliente esta viendo el dato contenido en la ventana flotante.... y asi puedo contabilizar las veces que las personas abren la ventana flotante.

Espero haberme explicado, agradezco tu ayuda.
  #4 (permalink)  
Antiguo 27/02/2009, 15:51
Avatar de jenusys  
Fecha de Ingreso: diciembre-2008
Ubicación: Ahí mismo.
Mensajes: 216
Antigüedad: 15 años, 3 meses
Puntos: 11
Respuesta: Como poner un contador en un Layer (ó algo similar)?

¡ Pues claro !
Como te había dicho no le tienes NINGUNA condición al código de manera que se ejecuta todo cuando abres la página. Cuando se abre una página o un programa lo que hace el intérprete de comandos es leer el código desde arriba hasta abajo y si no se le pone un cortapisas como condicional, el intérprete ejecuta todo de corrido. Con una condición podemos hacer varias cosas, desde hacerlo retroceder para que lea desde el inicio de nuevo, hasta hacerle repetir una cosa mil veces.

El UPDATE lo debes hacer dentro de una condición IF que nos declare estrictamente si se ha abierto la pestaña o no.

El problema es que el pedazo de código que estás colgando no está completo y no estamos viendo dónde ni cómo estás abriendo la pestaña que quieres abrir por lo que tan solo te puedo ayudar con el siguiente ejemplo incompleto:

//Me imagino que esta variable la traes de una consulta SQL anterior.
$cvisit = "$row[102]";

//Esta es la condición de la que te hablo pero debes crear una variable anterior que la valide.
if ($talcosa=="talotra")
{

//Aquí ya estabas aumentando la variable aún antes de verificar.
$cvisit++; //Puedes usarla mejor así.

//Creamos la sentencia SQL y la ejecutamos para guardar el nuevo No. de visita
$sSQL="UPDATE basedatos SET cvisit = '$cvisit' WHERE idarticulo = '$articulo' ";
mysql_query($sSQL)
or die("Error: " . mysql_error());

//Cerramos la condición if
}

De cualquier forma la variable " $talcosa " la debes definir con un evento de mouse o algo por el estilo cuando la persona ABRA la ventana flotante o el link o lo que esperes abrir.

¿Me explico? Si no, puedes seguir preguntándome. O espero el resto del código...

Última edición por jenusys; 28/02/2009 a las 12:44
  #5 (permalink)  
Antiguo 03/03/2009, 16:11
 
Fecha de Ingreso: febrero-2009
Mensajes: 4
Antigüedad: 15 años, 2 meses
Puntos: 0
Pregunta Respuesta: Como poner un contador en un Layer (ó algo similar)?

En verdad agradezco tu ayuda y que Dios te lo pague!

Mi codigo basicamente se compone de:

EN LA CABECERA (Funciones que abren/cierran el Layer Flotante):

<!--FUNCION JAVA SCRIPT PARA CERRAR EL LAYER FLOTANTE-->

<script language="JavaScript">

function cerrarPopup(pid)
{

<!--FUNCION JAVA SCRIPT PARA ABRIR EL LAYER FLOTANTE-->

document.getElementById(pid).style.visibility = 'hidden';
}

function abrirPopup(pid)
{
document.getElementById(pid).style.visibility = '';
}

</script>





EL LINK PARA QUE EL USUARIO DE CLIC, Y LE ABRA EL LAYER FLOTANTE (DONDE LE MOSTRARE EL PRECIO DEL ARTICULO Y A SU VEZ TENGO COLOCADO EL CONTADOR, PARA MONITOREAR LAS VECES QUE EL LAYER FLOTANTE ES ABIERTO:

<a href="javascript: abrirPopup('popup');">CLIC AQUI PARA ABRIR LA VENTANA FLOTANTE</a>




Y POR ULTIMO EL CODIGO DEL LAYER FLOTANTE:

<div id="popup" style="width: 200px; height: 100px; margin-top: 3px; position: absolute; border: 1px solid #666666; background-color:#F7F7F7; visibility:hidden;">

Y DENTRO DEL LAYER FLOTANTE, LOS DATOS A MOSTRAR AL USUARIO... ADEMAS DEL CODIGO PHP DEL CONTADOR:

<?
Me conecto a la BD y saco los datos a mostrar (en este caso el Precio), además del dato del No. de visita en el que va... y el codigo que incrementa... Ya te entendi lo que me recomiendas, de poner el codigo que actualiza la BD con el nuevo No. de visita, dentro de un condicional... solo que no se me ocurre como poner el condicional y hacer que se ejecute al hacer el usuario clic en abrir el Layer Flotante ¿¿¿¿?????

//Checa el No. de visitas, convierto la variable de la fila 102 al nombre: cvisit
$cvisit = "$row[102]";


//Suma 1 al total de visitas
$cvisit2 = $cvisit++; //Ya tome tu sugerencia de abreviar

// LO SIGUIENTE DENTRO DE UN CONDICIONAL... PERO QUE PUDIERA DECIR EL CONDICIONAL???

//Creamos la sentencia SQL y la ejecutamos para guardar el nuevo No. de visita
$sSQL="UPDATE basedatos SET cvisit = '$cvisit2' WHERE idarticulo = '$articulo' ";
mysql_query($sSQL)
or die("Error: " . mysql_error());

//TERMINA EL CONDICIONAL QUE ACTUALIZA EL No. de VISITA


?>

<p><CENTER><a href="javascript: cerrarPopup('popup');">CLIC AQUI PARA CERRAR ESTA VENTANA FLOTANTE</a></CENTER></p>
</div>
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:09.