Popup con php imagen

Tengo un script en php que enlaza hacia una mysql donde tengo campos como:
Nombre, descripción, foto y estoy tratando lograr que:
1.Cuando alguien cliquee sobre el campo foto se abra una foto grande
EN UNA VENTANA POPUP, pero no deseo alojarla
en la base de datos sino en un directorio especial, ya que los tamaños serán del orden de 100KB
. Así sucederá con todos los registros restantes
2.Lo he hecho pero alojandola en mysql y sale ok con fotos de 15kb
, pero no logro abrirla en una POPUP.
Por el momento tengo un archivo :ventana1.php que envía la variable a
ventana2.php y abre la entana popup, pero no aparece esta variable
ventana1.php:
<?php
$variable="hola como estas";
echo " <a href='#' OnClick=window.open('ventana2.php?cve=variable','ventanitas','width=200,height=200,menubar=no') >entrar ahorai</a>";
?>
ventana2.php:
<?php
$x=$_GET['cve'];
echo $x;
?>

1 Respuesta

Respuesta
1
La variable no te esta llegando porque te esta faltando el carácter"$" antes de la palabra "variable" así php la reconoce como variable.
Te mando una pequeña actualización,
fíjate que el link lo escribí directamente en html y utilicé los tags de php solo para imprimir la variable. Lo hice así porque de la otra manera podría haberte dado problemas con las cadenas.
<?
$variable="hola como estas";
?>
<a href='#' OnClick="window.open('ventana2.php?cve=<?print $variable?>','ventanita','width=200,height=200,menubar=no')">entrar ahora</a>
Pruébalo
Suerte!
despues q te envie la aclaracion ,hice unas pruebas y cargo la imagen en una ventana asi:
CONSULTARX.PHP : es un archivo donde sale los campos y las acciones a seguir.
VENTANA2.PHP: hace la gestion de imprimir la imagen apoyado en PRINTIMAGE.PHP
así:
CONSULTARX.PHP:
while($row=mysql_fetch_array($rs))
{
echo "<tr><td bgcolor='#f8f8f8'>
<font face='Verdana' size='1'>$row[0]</td>
<td bgcolor='#f8f8f8'><font face='Verdana' size='1'>$row[1]</td>
<td bgcolor='#f8f8f8'><font face='Verdana' size='1'>$row[9]</td>
<td bgcolor='#f8f8f8'><font face='Verdana' size='1'> ";
//lo q viene a continucacion es muy interesante porq deshabilitamos php
//para luego retomarlo
?>
<a href='#' OnClick="window.open('ventana2.php?cve=<?print $row[0]?>','ventanita','top=150,width=200,height=200,menubar=no')">entrar ahora</a>
<?php
echo"</td>";
echo" <td bgcolor='#f8f8f8'><font face='Verdana' size='1'> ";
?>
<?php
echo"</td>";
}
echo "</table>";
VENTANA2.PHP :
<?php
$id=$_GET['cve'];
//echo $x;
print "<img src='printimage_img.php?id=".$id. "' border='0'>";
?>
PRINTIMAGE.PHP :
<?php
include("conex_upimg_bd.php");
$MainSQL="SELECT * FROM imagenes_cons where codigo=$id ";
$res = mysql_query($MainSQL,$link);
$row=mysql_fetch_array($res);
$data = $row[12]; // 12 es el numero de columna q le corrssponde a la imagen en la base de datos.
print $data;
?>
Así tal como esta funciona ok, pero:
a.)Cuando cargo las fotos y sus descripción en los campos de la bd, lo hago desde un form, pero ahora tendría que generar en el mismo form otra sintaxis de carga de ESTA SEGUNDA IMAGENMAS GRANDE pero que cargue en un directorio.
Por favor dame pautas a seguir
freddy
Bien, si entendí correctamente lo que te esta faltando es poder guardar la foto con un tamaño mayor en
un directorio desde el form que carga las fotos en un primer momento.
Lo que te conviene hacer es renombrar cada foto que subís con el código con el que la identificas en
la base de datos. Por ejemplo, si subís una foto y en la base de datos la clave para identificarla es
"foto334", te conviene hacer un upload con php(utilizando por ej. la función copy(origen, destino)) y luego
renombrar el archivo a foto334.jpg. Luego, de la misma forma en la que utilizas el script PRINTIMAGE_IMG.PHP,
podes levanar la imagen desde el directorio en donde la guardaste. Como para ser más explicativos,
acá va un ejemplito:
Supongamos que al cargar la foto desde el form, la ruta de inicio de la foto que se quiere cargar es
$ruta="c:\mifoto\mifoto.jpg";
$dir_local="public_html/fotos/";//en el sitio en donde las queres alojar
$id_foto="333";//el id con que la identificas en la base de datos
entontces el script en php seria algo asi:
<?
if($ruta!=""){//cargo una foto
copy($ruta,$dir_local."/".$id_foto.".jpg");//la instruccion copy renombra directamente el archivo;
}
?>
luego, en el archivo en donde estara el link para hacer utilizo lo que ya tenes hecho
<?
print "<img src='printimage_img.php?id=".$id. "' border='0'>"; //imaginando que en la base de datos identifica //a la foto con $id
?>
y finalmente en el archivo printimage_img.php
<?
$tam=100; //tamaño deseado de la foto
$img_f=ImageCreateFromJpeg($dir_local."/".$id.".jpg");//crea una variable para manejar la imagen
$prop=$tam/imagesx($img_f);//calcula proporción
$tam_x=$prop*(imagesx($img_f));//recalcula los nuevos tamaños
$tam_y=$prop*(imagesy($img_f));
$img_d=ImageCreate($tam_x,$tam_y);//crea imagen
ImageCopyResized($img_d,$img_f,0,0,0,0,$tam_x,$tam_y,imagesx($img_f),imagesy($img_f));//copia
//cambiando de tamaño
imageJpeg($img_d);//muestra la imagen
?>
Bueno,
espero que te haya servido de algo, es decir, espero haberte entendido. Aunque... de todas formas, si alguna vez quieres hacer algo así, acá tienes una forma de hacerlo.
Suerte.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas