hilfe...buttons vor und zurueck

saraaa

Grünschnabel
Hallo,
ich haeng gerade fuerchterlich fest...
Ich habe ein paar codes aus nem tutorial fuer eine bildgalerie uebernommen und angepasst. gestern lief auch alles, bis ich die tolle idee hatte die buttons fuer vor und zurueck case-spezifisch anzuzeigen.
Beim ersten bild soll der zurueck button grau und nicht klickbar sein, beim weiter button entsprechend fuer das vorletzte bild...
Nun funktionieren die buttons nicht mehr, sprich beim weiterklicken komm ich egal von welchem bild ausgehend immer auf bild 1, beim rueckklicken auf bild -1(welches gar nicht existiert)...
ich weiss nicht, wie oft ich schon alles umgeschrieben habe, aber irgendwie ist der wurm drin...und ich blick langsam nicht mehr durch...
vielleicht kann mir wer helfen? waere echt super!

hab zum testen mal hochgeladen:
http://www.studiodiade.it/test/imm_ceramica/ceramica.htm

ceramica.htm:
HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<?php
if(!$_GET['foto'] || $_GET['foto'] < 1) $foto=0;
else $foto=$_GET['foto'];
?>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>- - - Reality - - -</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link href="../stile.css" rel="stylesheet" type="text/css" />
<link rel="shortcut icon" type="image/ico" href="http://www.realitystudio.it/reality.ico">
<meta name="keywords" content="studio fotografico modena, arredo ceramica, ambienti ceramica, ambienti arredamento, ambienti architettura, fotografia modena, modellazione 3d, rendering" />
<meta name="description" content="reality si occupa di realizzazione di fotografia di arredo, ceramica e architettura attraverso la modellazione 3d e il rendering, ottendendo risultati di ottima qualitý con tempi e costi contenuti" />

<script language="JavaScript" type="text/JavaScript">
<!--
function MM_openBrWindow(theURL,winName,features) { //v2.0
  window.open(theURL,winName,features);
}
//-->
</script>
</head>

<body>
<div id="container">
<div id="pageHeader">
  <h1></h1></div>
 <div id="pageMenu">
 <table>
  <tr>
    <td><a href="../mission.htm"><img src="../immagini/mission.gif" alt="mission" width="55" height="65" border="0" /></a></td>
    <td><a href="../portfolio.htm"><img src="../immagini/portfolio.gif" alt="portfolio" width="57" height="65" border="0" /></a></td>
    <td><a href="../contatti.htm"><img src="../immagini/contatti.gif" alt="contatti" width="60" height="65" border="0" /></a></td>
    <td><a href="../download.htm"><img src="../immagini/download.gif" alt="download" width="69" height="65" border="0" /></a></td>
  </tr>
</table>
</div>
<div id="pageNumber">
<h2></h2></div>
<div id="picture"><a href="#">
<!-- erstes Foto -->    
<img src="foto/<?php echo $foto+1; ?>.jpg" border="0" alt="<?php echo $foto+1;?>" onclick="MM_openBrWindow('../detail/cer/1.htm','dettaglio','resizable=yes,width=805,height=485')"/></a></div>
<div id="controller">
<table width="60"cellpadding="5">
  <tr>
    <!-- Pfeil zurueck -->
    <?php echo $foto;?>  
        <td><?php if($foto == 0) echo '<img src="../immagini/back_g.gif" />'; elseif($foto != 0) echo '<a href="wechsel.php?wechsel=zurueck&foto=<?php echo $foto;?>">
          <img src="../immagini/back.gif" border="0" /></a>' ; ?></td>
    <!-- Pfeil vor -->
    <td><?php if($foto+1 == $_GET['anzahl']) echo '<img src="../immagini/avanti_g.gif" />'; elseif($foto+1 != $_GET['anzahl']) echo '<a href="wechsel.php?wechsel=vor&foto=<?php echo $foto;?>">
          <img src="../immagini/avanti.gif" border="0" /></a>' ; ?></td>
  </tr>
</table>
</div>
<div id="titoloPagina1"><img src="../immagini/portfolio_tit1.gif" /></div>
<div id="contenuto">
  <div id="subMenu">
  	<? include 'testo/1.php'; ?>	
  	<? include '../portfolio_imgmenu.php'; ?>	
</div>
</div>
</body>
</html>
und wechsel.php:
PHP:
<?php
//uebernahme der parameter aus dem header
$wechsel = $_GET['wechsel'];
$foto = $_GET['foto'];
if (isset($_GET['anzahl'])) $anzahl = $_GET['anzahl'];

if (!$_GET['anzahl']) {

  //menge der in dem ordner gspeicherten bilder ermitteln
  $anzahl = 0;
  $verzeichniss = @opendir('foto');
  
    while (readdir ($verzeichniss))
    {
      $anzahl++;
    }
  
  //menge -2, da . und .. auch als dateien angesehen werden
  $anzahl = $anzahl - 2;
}

//wechsel des bildes
  if($wechsel=='zurueck') $foto1 = $foto - 1;
  if($wechsel=='vor') $foto1 = $foto + 1;

//modifikation des header und aufruf der htmseite
  header("Location: ceramica.htm?foto=".$foto1."&anzahl=".$anzahl);
?
 
Hallo,

schau dir mal folgende Zeile an:

PHP:
<td>
<?php if($foto+1 == $_GET['anzahl']) echo '<img src="../immagini/avanti_g.gif" />'; elseif($foto+1 != $_GET['anzahl']) echo '<a href="wechsel.php?wechsel=vor&foto=<?php echo $foto;?>">

du bist hier bereits im php Tag es reicht einfach nur $foto anstelle von <?php echo $foto;?>
 
Hi,
Wenn du beim echo mit einem Hochkomma arbeitest, werden die Variablen nicht übernommen;
PHP:
$var='Haus'
echo 'Ein $var'           //-->Ein $var
echo "Ein $var"         //-->Ein Haus
 
Erstmal : Es gibt einige code-tags hier (code,html,php), damit dein Source ein bisschen übersichtlicher wird. Ich hab das mal bei Dir geändert, aber nutze es bitte das nächste Mal.

z Thema:
Bitte änder doch mal das von peppi , dann kann man anhand der vorhandenen Seite stöbern, woran es liegen kann.

@peppi: Der Richtigkeit halber auch die Semikola setzen :D

mfg chmee

**EDIT**
Im Grunde genommen ist es doch im Code unerheblich, ob Du zurück oder vorwärts gehst, ergo brauchst Du die GET-Data Vorwärts oder Zurück gar nicht. Im php-Code ersetzt Du lediglich den Fotoindex mit der Besonderheit bei 1 nicht weiter runter zu gehen ( oder den Link auszublenden ) und bei Foto=letztes Foto dito $Foto nicht zu erhöhen ( oder den Link auszublenden ).
 
Entschuldigung fuer den code...ich wusste nicht, wie das geht...

Habe gerade mal versucht die Hochkommata zu aendern, aber das klappt nicht zusammen mit dem <a href>: Parse error: syntax error, unexpected T_STRING

Chmee,
Du meinst ich brauch den ganzen if Kram nicht?
Ich hab 2 Pfeile, einen zum Aufrufen vom naechsten, einen fuer das vorherige Foto, mit der Besonderheit, dass beim ersten und letzten Bild der jeweilige Pfeil eine andere Quelle hat und nicht mehr verlinkt ist...wie soll das denn anders gehen :confused: Ich glaub, ich brauch auch erstmal ne Mittagspause-mein Gehirn kommt nicht mehr mit...

//EDIT

Ich habs...die Hochkommata waren's!
Schreib jetzt noch den anderen Button um...

Danke!
 
Hmm, ich versuch das mal einigermaßen hier hin zu zaubern. Fehler werden mit Sicherheit drin sein :) Letztlich brauchst Du keine weitere externe php-Datei, Du bestimmst einfach, dass, wenn kein Fotoindex im GET gesetzt ist $Foto=1 ist. Wenn GET Foto existiert, wird dieser Wert übernommen und die Vor/Back-Links werden um einen Wert erhöht oder gesenkt. Besonderheit Foto = 1, dann wird der Back-Pfeil nicht gezeigt, genau so bei $Foto=max, dann erscheint der Vor-Pfeil nicht.

PHP:
//-------- im Header
<?php
$anzahl=10;
$foto=$_GET['foto'];
$gruppe=$_GET['gruppe'];
// ---------- Sind denn GET-Daten angegeben ?
if(!$foto)  { $foto=1; }
if(!$gruppe)  { $gruppe=1; }
?>

//Im Vorwärts-Rückwärts-Bereich
<td>
<?php 
if($foto>2) 
 {
 echo '<img src="../immagini/back_g.gif" />
  <a href="./ceramica.php?foto='.$foto-2.'&gruppe='.$gruppe.'"/>
  </img>';
 }
?>
 </td>
    <!-- Pfeil vor -->
    <td>
<?php
if($foto<anzahl-2) 
 {
 echo '<img src="../immagini/avanti_g.gif" />
  <a href="./ceramica.php?foto='.$foto+2.'&gruppe='.$gruppe.'"/>
  </img>';
}
?>
 </td>

Wie gesagt, das ist ne schnelle Überlegung, jeder php'ler muss mir verzeihen, wenn ich nicht optimiert habe. Fehler dürfen von Jedem berichtigt werden.

mfg chmee
 
So klappt es nun auch:

HTML:
<table width="60"cellpadding="5">
  <tr>
    <!-- Pfeil zurueck -->
        <td><?php if($foto == 0) echo '<img src="../immagini/back_g.gif" />'; elseif($foto != 0) { 
            echo "<a href='wechsel.php?wechsel=zurueck&foto=$foto'>";
            echo '<img src="../immagini/back.gif" border="0" />';
            echo '</a>';
            }
             ?></td>
    <!-- Pfeil vor -->
    <td><?php if($foto+1 == $_GET['anzahl']) echo '<img src="../immagini/avanti_g.gif" />'; elseif($foto+1 != $_GET['anzahl']) {
   		echo "<a href='wechsel.php?wechsel=vor&foto=$foto'>";
		echo '<img src="../immagini/avanti.gif" border="0" />';
                echo '</a>';
            }
             ?></td>
  </tr>
</table>
 
Hmm, ich versuch das mal einigermaßen hier hin zu zaubern. Fehler werden mit Sicherheit drin sein :) Letztlich brauchst Du keine weitere externe php-Datei, Du bestimmst einfach, dass, wenn kein Fotoindex im GET gesetzt ist $Foto=1 ist. Wenn GET Foto existiert, wird dieser Wert übernommen und die Vor/Back-Links werden um einen Wert erhöht oder gesenkt. Besonderheit Foto = 1, dann wird der Back-Pfeil nicht gezeigt, genau so bei $Foto=max, dann erscheint der Vor-Pfeil nicht.

Wie gesagt, das ist ne schnelle Überlegung, jeder php'ler muss mir verzeihen, wenn ich nicht optimiert habe. Fehler dürfen von Jedem berichtigt werden.

mfg chmee

Hmm, also kein nicht anklickbarer grauer Pfeil, der die Stelle des anklickbaren roten einnimmt...
Jetzt hab ich's geschnallt und die Loesung waer natuerlich etwas eleganter...
Mal sehen, Danke auf jeden Fall
 
Zurück