Foros del Web » Programando para Internet » PHP »

Identificar sobre que logotipo se pincha

Estas en el tema de Identificar sobre que logotipo se pincha en el foro de PHP en Foros del Web. Hola a todos, tengo el siguiente problema: Al cargar una pagina, lee de una base de datos los logotipos de los proveedores y los presenta ...
  #1 (permalink)  
Antiguo 01/09/2009, 13:10
thi
 
Fecha de Ingreso: abril-2009
Mensajes: 244
Antigüedad: 15 años
Puntos: 0
Identificar sobre que logotipo se pincha

Hola a todos,

tengo el siguiente problema:
Al cargar una pagina, lee de una base de datos los logotipos de los proveedores y los presenta en la pagina, esto ya lo hace perfectamente.
Lo que quiero hacer es que al pulsar en cada uno de estos logotipos me muestre información de cada uno de estos proveedores en formato popup, ya tengo el codigo de javascript que muestra el popup y ademas es un codigo que rellena el popup dentro del body con lo cual no necesito ningun codigo para enviar los datos a javascript, esto esta provado escribiendo el contenido del popup desde el codigo y funciona perfectamente.

El problema esta en que quiero que identifique que logotipo es el que se ha pulsado para utilizar esta información para rellenar el popup mediante un select y no se como hacer que me identifique el logotipo que se ha pulsado y que envie esta información al select. Había pensado en utilizar una base de datos temporal de forma que al pulsar el logotipo escribiera el nombre del proveedor en esta base de datos temporal y que luego el select para rellenar el popup obtuviera el dato del proveedor de esta base de datos temporal, pero todo esto es la teoria y no se como llevarlo a la practica.

Un saludo.
  #2 (permalink)  
Antiguo 01/09/2009, 14:29
 
Fecha de Ingreso: abril-2009
Ubicación: Miami
Mensajes: 182
Antigüedad: 15 años
Puntos: 8
Respuesta: Identificar sobre que logotipo se pincha

Hola thi ..

Bueno, tienes el 99% de las cosas hechas ... seguro que muestras los logotipos en imágenes desde una conexión a base de datos recogiendo sus nombres o algo parecido ... pues bien ... una vez que "pintes" las imágenes, de la forma que sea [seguro dentro de un while por ejemplo pa que las muestres todas] harás lo siguiente:

<a href="tu_pagina_q_procesa_la_inf.php?id=".$row['id'].""><img src="..ruta_de_tu_imagen" border="0"></a>

//nota aca tu_pagina_q_procesa_la_inf.php?id=".$row['id']." que le estarás pasando el "id" [no se como se llamará en tu tabla de nombres de imagenes el id] a la página en cuestión .. como harás esto en un ciclo pues pintarás la imagen correspondiente en el ciclo y en LINK lo harás con el ID correspondiente ... ESTE ES UN EJEMPLO ILUSTRATIVO, por supuestoe n tu caso las imagenes se pintan de otra forma si las recoges de una base de datos .... espero te sirva .. salu2


Cita:
Iniciado por thi Ver Mensaje
Hola a todos,

tengo el siguiente problema:
Al cargar una pagina, lee de una base de datos los logotipos de los proveedores y los presenta en la pagina, esto ya lo hace perfectamente.
Lo que quiero hacer es que al pulsar en cada uno de estos logotipos me muestre información de cada uno de estos proveedores en formato popup, ya tengo el codigo de javascript que muestra el popup y ademas es un codigo que rellena el popup dentro del body con lo cual no necesito ningun codigo para enviar los datos a javascript, esto esta provado escribiendo el contenido del popup desde el codigo y funciona perfectamente.

El problema esta en que quiero que identifique que logotipo es el que se ha pulsado para utilizar esta información para rellenar el popup mediante un select y no se como hacer que me identifique el logotipo que se ha pulsado y que envie esta información al select. Había pensado en utilizar una base de datos temporal de forma que al pulsar el logotipo escribiera el nombre del proveedor en esta base de datos temporal y que luego el select para rellenar el popup obtuviera el dato del proveedor de esta base de datos temporal, pero todo esto es la teoria y no se como llevarlo a la practica.

Un saludo.
  #3 (permalink)  
Antiguo 02/09/2009, 12:12
thi
 
Fecha de Ingreso: abril-2009
Mensajes: 244
Antigüedad: 15 años
Puntos: 0
Respuesta: Identificar sobre que logotipo se pincha

Gracias joaowizard, de esta forma funciona, pero hay 2 cosas que necesitaría arreglar:
1º - me sale una ventana muy pequeña del archivo php, durante nada de tiempo(ni un segundo) pero sale y me gustaría que no saliera.
2º - no se si es el servidor de trabajo en el que tengo la pagina pero no me actualiza correctamente la información que debe salir en cada logotipo en el que pulso, para ser más exacto cuando pulso en un logotipo de un proveedor me sale la información correcta de este pero al pulsar en otro siguel saliendo la información del primer proveedor, en cambio en la tabla temporal si que me cambia el proveedor en función del que pulso, y ademas despues de un rato si refresco la pantalla ya me muestra la información del segundo proveedor, pero al princhar en otro me vuelve a mostrar la información de este segundo proveedor.

Pongo el codigo para ver que se puede arreglar.

Archivo PHP
<body onLoad="setTimeout('window.close()',0)" onUnload="window.opener.setVisible('layer1',true)" >//cierro esta ventana automaticamente al cargarla y ademas llamo a la función javascript de la ventana madre al cerrar esta.


<?php
$username = "*********";
$password = "*********";
$hostname = "localhost";
$dbh = mysql_connect($hostname, $username, $password)
or die("Error accediendo al servidor de base de datos");

$selected = mysql_select_db("avyom",$dbh)
or die("Error al acceder a la base de datos");

//Borra todo el contenido de la tabla temporal
$query_tmp = "DELETE FROM tmp_proveedor";
$result_tmp = mysql_query($query_tmp);
//fin borrar


//Guarda el nombre del proveedor en la tabla temporal
$query_tmp = "INSERT INTO tmp_proveedor (nombre) VALUES ('".$_GET['tou_sel']."')";
$result_tmp = mysql_query($query_tmp);
//fin guardar

mysql_close($dbh);

?>

</body>


Archivo principal:

<script language="JavaScript"> //cargo la ventana popup
var ventana_tou_tmp;
function tou_tmp(codigo_tou)
{
ventana_tou_tmp=window.open(codigo_tou,'name','wid th=0,height=0,left=150,top=10');
}
</script>

<?php
-----------Aqui va mas codigo para otras funciones de esta pagina

print "<div id='layer1'>";//capa que se mostrara al pulsar sobre un logotipo de proveedor

$querytmp = "SELECT * FROM tmp_proveedor";
$resulttmp = mysql_query($querytmp);
$tou_sel='';
while ($rowtmp = mysql_fetch_array($resulttmp,MYSQL_ASSOC))
{
$tou_sel=$rowtmp['nombre'];//obtengo el nombre del proveedor que esta en la ventana temporal y lo meto en una variable
echo $tou_sel;
}

$querytou = "SELECT * FROM proveedores WHERE proveedores.NOMBRE='".$tou_sel."'";//busco toda la información que quiero mostrar del proveedor en la base de datos
$resulttou = mysql_query($querytou);

while ($rowtou = mysql_fetch_array($resulttou,MYSQL_ASSOC))
{
print "<span id='close'><a href=\"javascript:setVisible('layer1')\"><img src='/images/close.gif' border=0/></a></span>";

print "<ul>";
print "<li><a href='".$rowtou{'PAGINA_WEB'}."'>Ir a la Web</a></li>";
print "<li><a href='#' onClick=\"popup('/ficha_proveedor.php?touroperador=".$rowtou{'NOMBRE '}."'); return false;\" style='cursor: hand'>Ir a la Ficha</a></li>";
print "<li>Telefonos:<ul>";

$querytel = "SELECT * FROM telefonos_proveedor WHERE telefonos_proveedor.NOMBRE_PROVEEDOR_TB='".$rowtou {'NOMBRE'}."'";
$resulttel = mysql_query($querytel);

while ($rowtel = mysql_fetch_array($resulttel,MYSQL_ASSOC))
{
print "<li>".$rowtel{'TELEFONOS'}."</li>";
}
print "</ul>";
print "</li>";
print "<li>Emails:<ul>";

$queryeme = "SELECT * FROM emails_proveedor WHERE emails_proveedor.NOMBRE_PROVEEDOR_EB='".$rowtou{'N OMBRE'}."'";
$resulteme = mysql_query($queryeme);

while ($roweme = mysql_fetch_array($resulteme,MYSQL_ASSOC))
{
print "<li>".$roweme{'EMAILS'}."</li>";
}
print "</ul>";
print "</li>";
print "</ul>";
}
print "</div>";

print "<td><a onclick=\"tou_tmp('/menu_tou.php?tou_sel=".$row{'NOMBRE'}."'); return false;\" style='cursor: hand'><img src='/images/logotipo_proveedor/".$row{'LOGOTIPO'}."' border='0'/></a></td>";
  #4 (permalink)  
Antiguo 02/09/2009, 14:51
 
Fecha de Ingreso: abril-2009
Ubicación: Miami
Mensajes: 182
Antigüedad: 15 años
Puntos: 8
Sonrisa Respuesta: Identificar sobre que logotipo se pincha

Hola thi ...

.... primero .. no entiendo el pq usas una tabla temporal en el medio ... no me queda claro .. pero bueno ... tampoco entiendo el pq tienes TANTAS tablas, telefonos_proveedor, email_proveedor, proveedor, siendo que todos podrían ser campos de una sola tabla y con lo cual no tendrías que hacer TANTAS consultas, es decir, todos esos datos en UNA SOLA TABLA, una vez que localices el proveedor ya tendrás TODOS su datos en UN SOLO RECORDSET. Una tabla algo así como:

ID_EMPRESA Nombre_Empresa Telefono Email Nombre_LOGOTIPO

por otra parte ¿quien es $row ??//es a través de este que llamas a las imágenes independientes

¿cómo se llaman las imágenes?¿cómo las identificas?, sabemos que están en /images/logotipo_proveedor/ pero como se llaman ?? tienen nombre aleatorio o este $row{'LOGOTIPO'} guarda su nombre por ejemplo imagen.jpg ??

Necesito saber donde se guarda el nombre de la imagen, ese $row{'LOGOTIPO'}, además, en esa misma tabla donde se guarda el nombre de la imagen, debe haber algún identificador que relacione esa imágen con una empresa, ese identificador, se llame ID, ID_IMAGEN o como sea es el que le tienes que pasar en esta línea:

print "<td><a onclick=\"tou_tmp('/menu_tou.php?tou_sel=".$row{'IDENTIFICADOR DE EMPRESA'}."'); return false;\" style='cursor: hand'><img src='/images/logotipo_proveedor/".$row{'LOGOTIPO'}."' border='0'/></a></td>";

bueno, y lo que muestra una ventanita que dura menos de un segundo ... y .. ahí si me mataste :D .... no se .. busco y si encuentro algo te aviso .. pero me suena a algo de tus script eso ... salu2
  #5 (permalink)  
Antiguo 03/09/2009, 05:05
thi
 
Fecha de Ingreso: abril-2009
Mensajes: 244
Antigüedad: 15 años
Puntos: 0
Respuesta: Identificar sobre que logotipo se pincha

Te contesto a tus preguntas:

.... primero .. no entiendo el pq usas una tabla temporal en el medio ... no me queda claro .. pero bueno ... tampoco entiendo el pq tienes TANTAS tablas, telefonos_proveedor, email_proveedor, proveedor, siendo que todos podrían ser campos de una sola tabla y con lo cual no tendrías que hacer TANTAS consultas, es decir, todos esos datos en UNA SOLA TABLA, una vez que localices el proveedor ya tendrás TODOS su datos en UN SOLO RECORDSET. Una tabla algo así como:

Utilizo varias tablas de telefonos porque cada proveedor puede tener todos los números de telefonos que quiera con lo cual no puedo utilizar campos (telefono1, telefono2,....telefonoN)porque no se cuantos telefonos puede tener y esto mismo para los emails. Así que lo que tengo es una tabla con 2 campos {PROVEEDOR, TELEFONO} y así sólo tengo que hacer busquedas por el nombre del proveedor y me muestra todos los telefonos del mismo.


¿cómo se llaman las imágenes?¿cómo las identificas?, sabemos que están en /images/logotipo_proveedor/ pero como se llaman ?? tienen nombre aleatorio o este $row{'LOGOTIPO'} guarda su nombre por ejemplo imagen.jpg ??

El nombre de las imagenes(logotipos de los proveedores) lo obtengo de la base de datos a traves del campo $row{'LOGOTIPO'}


print "<td><a onclick=\"tou_tmp('/menu_tou.php?tou_sel=".$row{'IDENTIFICADOR DE EMPRESA'}."'); return false;\" style='cursor: hand'><img src='/images/logotipo_proveedor/".$row{'LOGOTIPO'}."' border='0'/></a></td>";

El {'IDENTIFICADOR DE EMPRESA'} que me pones aquí es el que pongo como {'NOMBRE'} que es el nombre de la empresa.


bueno, y lo que muestra una ventanita que dura menos de un segundo ... y .. ahí si me mataste :D .... no se .. busco y si encuentro algo te aviso .. pero me suena a algo de tus script eso ... salu2

La ventanita es el archivo php en el que hago todo lo de la tabla temporal y al que llamo mediante el codigo de ventana popup. Si sabes algún metodo mejor para llamar al achivo php para que ejecute el codigo del mismo sin que se cargue una ventana, me vendría muy bien.

<script language="JavaScript"> //cargo la ventana popup
var ventana_tou_tmp;
function tou_tmp(codigo_tou)
{
ventana_tou_tmp=window.open(codigo_tou,'name','wid th=0,height=0,left=150,top=10');
}
</script>


Un saludo.
  #6 (permalink)  
Antiguo 03/09/2009, 10:44
 
Fecha de Ingreso: abril-2009
Ubicación: Miami
Mensajes: 182
Antigüedad: 15 años
Puntos: 8
Respuesta: Identificar sobre que logotipo se pincha

hola thi .. sorry, algo atrazado jejeje ..


bueno acá:
print "<td><a onclick=\"tou_tmp('/menu_tou.php?tou_sel=".$row{'IDENTIFICADOR DE EMPRESA'}."'); return false;\" style='cursor: hand'><img src='/images/logotipo_proveedor/".$row{'LOGOTIPO'}."' border='0'/></a></td>"

creo que entonces está todo ok, en tu página que muestras los datos del cliente pues recoges el IDENTIFICADOR DE EMPRESA CON:

$empresa = $_GET['IDENTIFICADOR DE EMPRESA'];

CON ESA $empresa haces el SELECT en tu tabla de empresas, teléfonos etc y muestras sus datos ... creo que ya con esto completas lo que estabas necesitando.

Lo que me comentas de la tabla para teléfonos, está ok, entiendo, yo en tu caso hubiese tomado un campo de la base de datos de tipo texto, donde ahí pudieran poner muchos teléfonos, esto te digo pa agilizar las consultas, no es lo mismo hacer consultas a una tabla que a varias tablas.

Lo del código que sale rapidito, estuve viendo y realmente no se que decirte :( ... si averiguas por favor postea .. !!!! un salu2 ..
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 07:49.