Ik vroeg me af:
ik heb while loop waarin een tabel met thumbnail-plaatjes staat. Als je op zo'n plaatje klikt, dan opent het plaatje op ware grootte.
Maar ik wil nu dat het plaatje opent in een nieuwe url zodat ik wat meer info erbij kan zetten.
Is dat mogelijk en zo ja hoe doe je dat?
Natuurlijk kan dat:


/plaatje/show.php?id=4527


show.php:
<?php
$id = 0;
if(isset($_GET['id'])) {
$id = intval($_GET['id']);
}
// ...
$result = mysqli_query('SELECT * FROM plaatjes WHERE id=' . $id);
if(FALSE === $result) {
throw new Exception('Image with id ' . $id . ' not found.');
}

// en de rest
?>
}
Dank, ik begrijp het niet maar ik ga er even over nadenken, misschien dat ik het morgen of overmorgen wel snap wat hier gebeurt.


Oke, ik zal het antwoord dan wat uitgebreider geven.

Stel je hebt op een bepaalde pagina een thumbnail. Je zet deze in een snelkoppeling zodat je naar een andere pagina gaat als je er op klikt. De html ziet er dan zo uit:

<a href="show.php?id=4527"><img src="/images/thumb_4527.jpg"></a>


Dan ga je dus naar show.php als je er op klikt. die ziet er dan ongeveer zo uit:

<?php
$id = 0;
if(isset($_GET['id'])) {
    $id = intval($_GET['id']);
}

// hier even connectie maken met je database server

$result = mysqli_query($con, 'SELECT * FROM plaatjes WHERE id=' . $id);
if(FALSE === $result) {
    throw new Exception('database error ' . $mysqli_error($con));
}

$row = mysqli_fetch_assoc($result);
if(FALSE === $row) {
    throw new Exception('Image with id ' . $id . ' not found.');
}
?>
<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>Details van plaatje</title>
	</head>
	<body>
		<img src="<?php echo $row['filepath']; ?>">
		<p>
			<?php echo $row['description']; ?>
		</p>
	</body>
</html>
Het klinkt heel makkelijk, en logisch. Maar mijn output is variabel.

echo "<td><a href=" .$row["Url"] . "><img src=" .$row["Url"] . " width='100' height='75' /></a></td>";

vs
<a href="show.php?id=4527"><img src="/images/thumb_4527.jpg"></a>
En wat is de uiteindelijke HTML die er uit jouw echo komt?
Ik gebruik dit. Het is een afbeelding in een gallery en als je erop klikt, dan opent een pagina met informatie over die afbeelding.

<div class='imgholder'>
	<a href="/store/?pid=<?php echo $pid; ?>">
		<img src="/init/getImage.php?pid=<?php echo $pid; ?>" alt="<?php echo $title; ?>" title="<?php echo $title; ?>" style="margin: 0px auto; max-width: <?php echo $width; ?>px;" />
	</a>
</div>


Zowel de afbeelding als alle info over die afbeelding is opgeslagen in een mysql database.

In een webpagina ziet het er dan zo uit :

<div class='imgholder'>
	<a href="/store/?pid=15">
		<img src="/init/getImage.php?pid=15" alt="Piece of String" title="Piece of String" style="margin: 0px auto; max-width: 920px;" />
	</a>
</div>
- Ariën - op 11/10/2016 00:31:54

En wat is de uiteindelijke HTML die er uit jouw echo komt?


<td><a href=/dir/map/nummer_naamvanhetplaatje.jpg><img src=/dir/map/nummer_naamvanhetplaatje.jpg width='100' height='75'  /></a></td>  

Ten eerste, zet de link van de href en src tussen aanhalingstekens.

Ten tweede, als je het plaatje met info wil tonen, link naar een pagina met dat plaatje.

Zie mijn voorbeeld.

Je kan het haast zelf bedenken.
Adoptive Solution op 12/10/2016 21:56:40

Ten eerste, zet de link van de href en src tussen aanhalingstekens.




ik keek net nog een keer, had het niet eens gezien maar view-source geeft het echt precies zo zonder aanhalingstekens.
Marina janssen op 11/10/2016 00:19:13

Het klinkt heel makkelijk, en logisch. Maar mijn output is variabel.

echo "<td><a href=" .$row["Url"] . "><img src=" .$row["Url"] . " width='100' height='75' /></a></td>";

vs
<a href="show.php?id=4527"><img src="/images/thumb_4527.jpg"></a>

Pas $row['id'] aan zodat het het id uit de database bevat.
<?php
echo '<td><a href="show.php?id='.$row['id'].'"><img src="'.$row['Url'].'"></a></td>';
?>

Reageren