Hej!
Osäker på om detta är rätt del av forumet eller om java delen passade bättre.
Jag har skrivit ihop ett snabbt bildgalleri, kanske inte jätte välkodat men fyller sitt syfte att leka lite med.
Det är nämligen som så att jag vill att när jag klickar på föregående/nästa knappen så ska inte hela sidan uppdateras utan enbart kommentarerna och dess bild.
Till min hjälp så hittade jag följande jquery plugin:
http://github.com/tkyk/jquery-history-plugin
Jag har försökt implementera den men inte lyckats och skulle bli jätteglad om någon där ute kunde hjälpa mig, åtminstone med att börja på något sätt. Känns inte som att det borde vara så svårt men får inte till det så lite hjälp skulle uppskattas.
Jag tar även emot tips om någon annan history-plugin som kanske är bättre och lättare att få att fungera om du känner till någon.
Jag la upp mitt galleri lite hastigt på följande adress:
http://43f7f7.tempopage.com/index.php?pid=1&gid=2
php koden till galleriet är följande:
index.php
<?php
include "db_photos.php";
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
<div id="logo">Liten fin logo som inte ska laddas om...</div>
<div id="picture">
<?php
// Skriv ut bilden
if($picture){
echo '<div class="picture">'.$picture.'</div>';
echo "<br />";
echo '<a href="test.php?pid='.$prev.'&gid='.$_GET['gid'].'">< Föregående</a>';
echo " || ";
echo '<a href="test.php?pid='.$next.'&gid='.$_GET['gid'].'">Nästa ></a>';
echo '<h1>Kommentarer</h1>';
if($comments != null){
foreach($comments as $comment){
echo $comment."<br />";
}
}
else
echo "Bilden har inga kommentarer än :(";
}
?>
<!-- Comments Form -->
<form action="" method="post">
<h1>Kommentera bilden</h1>
<?php
// Skriv ut ett meddelande om bilden blivit kommenterad eller inte.
if($msg){
echo '<div class="msg">'.$msg.'</div>';
}
?>
<textarea id="comment" name="comment"></textarea>
<div class="clear"></div>
<p><input type="submit" name="submit" value="Kommentera" /></p>
</form>
</div>
<div id="footer">Ännu lite mer innehåll som inte ska laddas om...</div>
</body>
</html>
db_photos.php
<?php
include('db_connection.php');
$err = array();
$success = array();
if($_GET['pid'] && $_GET['gid'] && $_GET['gid'] != null){
$pid = mysql_real_escape_string($_GET['pid']);
$gid = mysql_real_escape_string($_GET['gid']);
// Kolla så att bilden finns i det albumet
$result = mysql_query("SELECT address FROM photos WHERE id='".$pid."' AND galleryid='".$gid."'");
if(mysql_num_rows($result) == 1){
// Bilden fanns, skriv ut den
$result = mysql_fetch_assoc($result);
$address = $result['address'];
$picture = "<img src='".$address."' />";
// Nästa
$result = mysql_query("
SELECT id
FROM photos
WHERE id > '".$pid."'
ORDER BY id ASC
LIMIT 1");
if(mysql_num_rows($result) > 0){
$result = mysql_fetch_assoc($result);
$next = $result['id'];
}
else{
// Det fanns inga fler bilder, om användaren klickar på nästa nu så kommer han tillbaka till första bilden
$result = mysql_fetch_assoc(mysql_query("
SELECT id
FROM photos
ORDER BY id ASC
LIMIT 1"));
$next = $result['id'];
}
// Föregående
$result = mysql_query("
SELECT id
FROM photos
WHERE id < '".$pid."'
ORDER BY id DESC
LIMIT 1");
if(mysql_num_rows($result) > 0){
$result = mysql_fetch_assoc($result);
$prev = $result['id'];
}
else{
// Det fanns inga fler bilder, om användaren klickar på föregående nu så kommer han tillbaka till sista bilden
$result = mysql_fetch_assoc(mysql_query("
SELECT id
FROM photos
ORDER BY id DESC
LIMIT 1"));
$prev = $result['id'];
}
// Om det finns några kommentarer, skriv ut dem.
$result = mysql_query("
SELECT comment
FROM photo_comments
WHERE pid=".$_GET['pid']."");
while ($row = mysql_fetch_array($result)){
$comments[] = $row['comment'];
}
}
else{
$err[] = 'Bilden du söker finns inte!';
}
}
// Användaren har valt att kommentera bilden.
if ($_POST['submit']=='Kommentera'){
if($_POST['comment'] != null){
$_POST['comment'] = mysql_real_escape_string($_POST['comment']);
$_GET['pid'] = mysql_real_escape_string($_GET['pid']);
mysql_query("INSERT INTO photo_comments(pid, comment, dt)
VALUES(
'".$_GET['pid']."',
'".$_POST['comment']."',
NOW()
)");
if(mysql_affected_rows($db_connection)==1){
$success[]='Du har lagt till en kommentar!';
}
else{
$err[]='Något gick fel och din kommentar har inte blivit sparad :(';
}
}
else{
$err[]='Du måste först skriva en kommentar för att sedan kunna publicera den.';
}
}
// Kolla om vi fått några felmeddelanden, skriv i så fall ut dem.
if(count($err)){
$msg = $msg.implode('<br />',$err)."<br />";
}
// Kolla om vi fått några meddelanden, skriv i så fall ut dem.
if(count($success)){
$msg = $msg.implode('<br />',$success)."<br />";
}
?>