Foros del Web » Programando para Internet » PHP »

Ayuda urgente

Estas en el tema de Ayuda urgente en el foro de PHP en Foros del Web. Hola a todos, el titulo es porque ya llevo casi 3 semanas con este tema y no soy capaz de solucionarlo, ademas ya he preguntado ...
  #1 (permalink)  
Antiguo 08/09/2009, 12:20
thi
 
Fecha de Ingreso: abril-2009
Mensajes: 244
Antigüedad: 15 años
Puntos: 0
Ayuda urgente

Hola a todos,

el titulo es porque ya llevo casi 3 semanas con este tema y no soy capaz de solucionarlo, ademas ya he preguntado en el foro cosas concretas sobre el tema y tampoco consigo solucionarlo.

Lo que quiero hacer es que al pinchar sobre un logotipo de un proveedor me muestre un menu popup personalizado(un enlace a su pagina, un enlace para ver la ficha del proveedor, sus telefonos y sus emails) para ese proveedor.

Logicamente ya funciona mucha parte de la pagina, en este caso que muestre los logotipos de los proveedores(este logotipo se extrae de la base de datos al cargar la pagina) y ademas ya tengo el javascript apropiado(highslide) para mostrar el menu, y muestra el menu pero siempre el mismo.

Lo que no soy capaz es que me muestre el menu en funcion del logotipo que se pulse, todos los datos que se tienen que mostrar se obtienen de la base de datos mediante "SELECT" pero el problema es como identifico que estoy pulsando el logotipo para que me devuelva el nombre(este dato tambien esta en la base de datos de donde se obtiene el logotipo) del mismo y con este hacer el pertienente "SELECT"

Un saludo.
  #2 (permalink)  
Antiguo 08/09/2009, 12:35
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Ayuda urgente

Tendrias que mostrar lo que has hecho para que te podamos indicar
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 08/09/2009, 13:13
(Desactivado)
 
Fecha de Ingreso: julio-2009
Mensajes: 76
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: Ayuda urgente

Supongo que tendrás que generar los menús dinámicamente en función de los datos recibidos de la bd cuando se carge la página.
más menos de esta forma..
<?
aqui un bucle que recoge los datos de la bd
$i++
... lista menus php
echo " <script>var menu[$i] = 'datos'</script><img onmuseover=muestramenu(menu[$i] ...etc"
?>
El código depenederá de como trabaje el script que usas.

Otra opción si no quieres cargar todo de golpe puedes hacer

imagenCliente1 -> onmouseover ->Ajax llama a servidor pidiendo a la bd resultados para Cliente1 y muestra menu en el div apropiado
Y así sucesivamente.

En todo caso al generar javascript dinámicamente tendrás que tener mucho cuidado con que el resultado sigua las reglas del lenguaje y no repetir variables,usar \n para saltar lineas o ; al final de las sentencias,... etc, ya que entonces no funcionaría.
No puedo decirte mucho más porque no se como trabaja el Javascript que usas para generar el menú.

Sería bueno que una vez generado mirases el código fuente para comprobar que la generar los menús si estos se definen en arrays javascript que se generan dentro de un bucle php de no pisarlos ya que eso siempre mostraría el mismo menú.

pseudocódigo solucionar esto:

$i=0;
bucle 10 vueltas{
print html div id = 'otrodiv'.$i
print javascript array[$i] = 'tal'
print imagen que onmouseover muestra menu contenido en array[$i] en div otrodiv$i
$i++
}
... si array[] y mouseover tienen siempre la misma clave muestra siempre el mismo menú por eso el $i++
Los ejemplos que te pongo no son como debería ser pero si como podría ser, espero por lo menos te sirva de orientación si es que van por ahí los tiros.

Para identificar el logotipo:

una forma
<img src='logox.gif' onclick='unafuncionjs("identifiacador sacado de la base de datos")'>

otra forma
<input type='hidden' id='iden1' value='identificador que sea' />
<img src='xxx.gif' onclick = 'alert(document.getElementById("iden1").value)' />

----
Claro está que esto tendrás que generarlo en función de los resultados de la base de datos


que podría ser..

$i=0
bucle{

echo<<<
$iden = "IDEN".$i
<input type='hidden' id='$iden' value='identificador que sea' />
<img src='IMAGEN_SACADA_DE_LA_BD' onclick = 'alert(document.getElementById("$iden").value)' />

>>>

$i++

}

El caso es que puede hacerse de muchas maneras todo dependerá de si usar script de terceros conocer su funcionamiento interno o tener un minimo de documentción del mismo.

Espero haberte entendido y te sirva de algo mi respuesta.

Última edición por aredsc; 08/09/2009 a las 13:35
  #4 (permalink)  
Antiguo 09/09/2009, 05:44
thi
 
Fecha de Ingreso: abril-2009
Mensajes: 244
Antigüedad: 15 años
Puntos: 0
Respuesta: Ayuda urgente

Gracias por vuestras respuestas, a continuación os pongo el codigo, como me pedisteis:

<link rel="STYLESHEET" type="text/css" href="csstablas.css">

<script type="text/javascript" src="/templates/ja_teline_ii/highslide/highslide-with-html.js"></script>
<link rel="stylesheet" type="text/css" href="/templates/ja_teline_ii/highslide/highslide.css" />

<script type="text/javascript">
hs.graphicsDir = "/templates/ja_teline_ii/highslide/graphics/";
hs.outlineType = "rounded-white";
</script>

<table>
<tr>
<td>
<?php
require('conexion.php');

$query = "SELECT * FROM proveedor";
$result = mysql_query($querytmp);

while ($row = mysql_fetch_array($result,MYSQL_ASSOC))
{
print "<a class='highslide' onClick=\"return hs.htmlExpand(this, { contentId: 'highslide-html' } )\"><img src='/images/logotipo_proveedores/'".$row['logo_proveedor']."' border='0'/></a>";//Aqui mostrara todos los logos de los proveedores y ademas llamara al javascript

?>
</td>
</tr>
</table>

//estos son funciones del javascript
<div class="highslide-html-content" id="highslide-html">
<div class="highslide-header">
<ul>
<li class="highslide-move">
<a href="#" onclick="return false">Mover</a>
</li>
<li class="highslide-close">
<a href="#" onclick="return hs.close(this)">Cerrar</a>
</li>
</ul>
</div>
<div class="highslide-body">
<?php

$tou_sel=proveedor_seleccionado;//aqui debería ir el nombre del proveedor sobre el que se ha hecho click para meterlo en la variable y así poder buscar en la base de datos todos los datos de este proveedor, los cuales estan en distintas tablas, para ponerlos en el menu del javascript. Este es el problema principal porque no se como puedo poner aquí el nombre del proveedor sobre el cual he hecho click.

$querytou = "SELECT * FROM PROVEEDORES WHERE PROVEEDORES.NOMBRE='".$tou_sel."'";
$resulttou = mysql_query($querytou);

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

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

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

$queryeme = "SELECT * FROM emails WHERE emails.NOMBRE_PROVEEDOR_EB='".$rowtou{'NOMBRE'}."' ";
$resulteme = mysql_query($queryeme);

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

</div>
<div class="highslide-footer">
<div>
<span class="highslide-resize" title="Resize">
<span></span>
</span>
</div>
</div>
</div>
  #5 (permalink)  
Antiguo 09/09/2009, 13:16
thi
 
Fecha de Ingreso: abril-2009
Mensajes: 244
Antigüedad: 15 años
Puntos: 0
Respuesta: Ayuda urgente

A ver que os parece lo siguiente:

En los logotipos ademas de llamar a javascript(menu popup) que mande el nombre del proveedor a un archivo php mediante POST y que en este archivo se ejecute un formulario en el que a su vez me devuelva el nombre del proveedor a la ventana original mediante un submit automatico que se ejecute con onunload.

Un saludo.
  #6 (permalink)  
Antiguo 09/09/2009, 13:53
 
Fecha de Ingreso: agosto-2009
Mensajes: 247
Antigüedad: 14 años, 8 meses
Puntos: 10
Respuesta: Ayuda urgente

Mostra tu formulario
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 13:24.