Ver Mensaje Individual
  #3 (permalink)  
Antiguo 08/03/2013, 11:51
mbonda
 
Fecha de Ingreso: octubre-2011
Ubicación: Argentina
Mensajes: 9
Antigüedad: 12 años, 6 meses
Puntos: 0
Respuesta: Problemas con PHP y javascript

Muchas gracias por tu respuesta.!!!
En realidad esto <p id='marco'></p> es lo de menos.

El tema es así, en un sitio que estamos desarrollando, tengo un botón que al hacerle click abre un lightbox, el botón es uno genérico para todas las imágenes que se desplazan a través de un slide de miniaturas. Al hacer click en una miniatura se muestra el producto en grande dentro de una div. Al hacer ese click activo un boton a la derecha que, al picarlo, activa un lightbox que muestra una galería de fotos relacionada al producto.

Todo va bien, llevo unos días desarrollando y todo anda perfecto.

El tema es que el botón es común a todos los productos por ende cuando un usuario clickea una miniatura del slide, arriba se muestra la foto en grande y PARALELAMENTE, el boton que activa el lightbox debe recibir el "id" de ese producto para mostrar las fotos relacionadas a ese producto que eligió el usuario.

Como todo se realiza en la misma página, estoy usando javascript para mostar las fotos en el mismo div de la misma página siempre.

Lo hago así:

function espacio<?php echo $i;?>() {
document.getElementById('espacio_fondo').innerHTML = "<img src='<?php echo $xx0;?>' width='700' height='480'/>";
}

O sea al hacer "onclick" sobre una imagen de miniatura manda la foto a un div llamado "espacio<?php echo $i;?>"
Las miniaturas van rotando en un carrusel más abajo.

Como te decía, paralelamente debo asignarle el id del producto al boton que abre el lightbox con las fotos relacionadas. La función es lanzada en el mismo momento con el "onclick" anterior...
Lo hago así:

function escribe<?php echo $i;?>() {
document.getElementById('pepe').innerHTML = "<?php echo $idProducto;?>";
}

Y lo recibe:

<script>
var variablejs = "<p id='pepe'></p>" ;
</script>

Este a su vez estaría enviando el "idProducto" a este lugar:

<?php
$variablephp = "<script> document.write(variablejs) </script>";
echo "$variablephp";
?>

Y así armo el select... Para qué el select? para ejecutar la función de lightbox que muestra las fotos relacionadas al producto y almacenadas en una base de datos. Este es el lightbox del que te hablo y que debería lanzar las imágenes difrentes segun el id que le mandemos al hacer click en la foto miniatura:

<!-- Lighbox Imágenes Relacionadas -->
<script type="text/javascript">
$jq123(document).ready(function() {
$jq123("a#relacionadas").fancybox({
'itemLoadCallback':getGroupItems,
'overlayShow':true
});
});
var imageList = [
<?php
$registros=mysql_query("select * from productos where Estado='0' and idProducto='$variablephp' and Genero!='Caballero' ORDER BY idProducto DESC" ,$cnConex) or
die("Problemas en el select:".mysql_error());
if ($reg=mysql_fetch_array($registros))
{
?>

{url: "../FotosRelacionadas/<?php echo $reg['Foto11']; ?>"}
... Y sigue mostrando las columnas de la base, por esto no hay problemas...

<?php }?>
];
function getGroupItems(opts) {
jQuery.each(imageList, function(i, val) {
opts.itemArray.push(val);
});
}
</script>

En resumen, al cargarle ese id que deviene de una función de javascript, el lightbox deja de funcionar porque creo que no toma este resultado como un número... O sea se ejecuta el lightbox pero tira el cargador como buscando... Lógico, no encuentra este id...

<?php
$variablephp = "<script> document.write(variablejs) </script>";
echo "$variablephp";
?>

Para probarlo, a esto le hice una pequeña función de suma en php para ver si me sumaba este supuesto número con otro y no lo hace... entiendo que en lugar de tomar el número que resulta de la función de javascript toma el "texto" del script de php... O sea esto: "<script> document.write(variablejs) </script>" como algo literal...

Me he hecho entender??? Complicado lo mio no?

Gracias, espero puedas ayudarme...