Witam
piszę właśnie galerię zdjęć z użycie PHP. Mam już zrobione większość rzeczy, w tym upload i wyświetlanie zdjęc w galerii. Chciałbym jednak zrobić jeszcze coś takiego aby obok każdego zdjęcia był przycisk checkbox, po zaznaczceniu pewnej ilości zdjęć są one zapamiętane w sesji i można je wyświetlić na innej stronie. Próbowałem już wielu rzeczy ale nic mi nie wychodziło. Mógłby mi ktoś w tym pomóc. Dodatkowo powiem, że w przypadku uploadu, nazwa zdjęcia i jego id są zapisywane w pliku xml.
Jakiś kawałek kodu daj, żeby tylko dopisać, a nie pisać od nowa..
mam tutaj kod odpowiedziałny za wczytywanie zdjęć do galerii i kawałek który próbowałem te checkboxy zrobić (te checkboxy mają być widoczne tylko gdy jest sięzalogowanym)
$target_dir = "images/";
$dir = opendir($target_dir);
$file = "zdjecia.xml";
$xml = simplexml_load_file($file);
if ($opendir = opendir($target_dir))
{
echo "<form id='form_id' method = 'post' action = 'zapiszgaleria.php'>";
while (($file = readdir($opendir)) !== FALSE)
{
if($file != "." && $file != "..")
{
echo '<a target="_blank" href="znak/' . $file . '"><img src="mini/' . $file .'" alt="fota_galeria" border="0" /></a>';
//echo $file . "<br>";
if ($_SESSION["zalogowany"] == true) {
echo "<input type='checkbox' name='saved[$counter]' value='checked'>";
}
}
$counter++;
}
No to zapis:
$_SESSION['zapisane_zdjecia'] = $_POST['saved'];
I na stronie pokazującej tylko wybrane zdjęcia:
$target_dir = "images/";
$dir = opendir($target_dir);
$file = "zdjecia.xml";
$xml = simplexml_load_file($file);
if ($opendir = opendir($target_dir))
{
$counter = 0;
echo "<form id='form_id' method = 'post' action = 'zapiszgaleria.php'>";
while (($file = readdir($opendir)) !== FALSE)
{
if($file != "." && $file != "..") // nie sprawdzamy
{
if (!$_SESSION['zapisane_zdjecia'] || in_array($counter, $_SESSION['zapisane_zdjecia'])) // jeżeli nie ma zapisanych zdjęć w sesji [wtedy wyświetlimy wszystkie], lub są i bieżące zdjęcie jest w sesji [wtedy wybrane]
{
echo '<a target="_blank" href="znak/' . $file . '"><img src="mini/' . $file .'" alt="fota_galeria" border="0" /></a>';
//echo $file . "<br>";
}
}
$counter++;
}
}
Przy okazji dowcip-zagadka:
Masz w ręku dwa jabłka, wkładasz te jabłka do koszyczka. Ile jabłek jest w koszyczku?
Odp: Np. 5, bo Adam już wcześniej włożył do koszyczka 3 inne ;)
Wnioski: ZAWSZE zeruj zmienne. (U Ciebie tego zabrakło, ja dodałem)
Zarejestruj się i dołącz do największej społeczności programistów w Polsce.
Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.