Link Problem

kbit

Erfahrenes Mitglied
Hi ich hab folgendes Problem. Ich gebe die Buchstaben von A-Z aus. Wenn ich nun z.b auf den Buchstaben A klicke lasse ich mir aus der DB alle Namen mit dem Buchstaben A ausgeben. Klicke ich auf den Buchstaben A übergebe ich per get folgendes:

PHP:
echo '<a href="frame.php?Name=' . urlencode($row['S_Name']) . '&amp;PLZ=' . urlencode($row['S_PLZ']).'&amp;Bild='.urlencode($row['Bi_gross']).'&amp;k='.urlencode($row['Bi_klein']).'">'.$row['S_Name'].'</a><br/>';
Dann lasse ich mir das Bild so ausgeben :
PHP:
if(isset($_GET['Bild'])){
        
echo '<img src="../../'.$_GET['Bild'].'" alt=" Kein Bild vorhanden" >';}
Das funktioniert auch alles. Nun möchte ich das so haben das ich zusätzlich 2 Links ausgegeben bekomme. Wenn ich auf den einen Link klicke soll mir das Bild in klein angezeigt werden auf dem anderen wieder in groß.
Ich habe das nun so gemacht gehabt als test:
PHP:
echo '<a href="../../'.$_GET['k'].'">test</a>';
Es wird mir auch das kleinere Bild angezeigt aber er springt halt direkt zum Bild hin und ich möchte das so haben das die aktuelle Seite erhalten bleibt und nur das Bild sich ändert.
 
Hi,

das kannst du nur clientseitig mit Javascript bewerkstelligen (indem du die Attribute des Bildelements abänderst), nicht mit PHP.


Gruß

.:lay-z-cow:.
 
Hi,

erstmal gibst Du den img-Tags eindeutige IDs. Dann kannst Du dem kleinen Bild erst einmal ein style="display:none" verpassen, oder dem großen, wie Du halt willst. Den Links gibst Du ein onclick, das eine Javascript-Funktion aufruft, die per document.getElementById(id).style.display = "inline" bzw. "none" das eine Bild ein- und das andere ausblendet.

LG
 
Ich kenn mich nicht so gut in JS aus deshalb hatte ich das auch erst im php forum gepostet weil ich dachte das kann man auch ohne JS lösen. Ich habe das schon mal so versucht gehabt
PHP:
echo '<a href="suche6.php" onclick="neuesFenster(this.href,
//"name","400","550","yes");return false"><img src="../../'.$_GET['Bild'].'"></a>';

Das was du beschrieben hast klingt gut. Könntes du mir da ein wenig Bsp-Code posten, weil wie gesagt JS bin ich nicht so gut.
 
Hi,

bitte schön:

HTML:
<script type="text/javascript">
function show(bild_id) {
   if(bild_id == "id_klein") {
      document.getElementById("id_gross").style.display = "none";
      document.getElementById("id_klein").style.display = "inline";
   } else {
      document.getElementById("id_klein").style.display = "none";
      document.getElementById("id_gross").style.display = "inline";
   }
}
</script>

<a href="javascript:void(0);" onclick="show('id_klein');">klein</a>
<a href="javascript:void(0);" onclick="show('id_gross');">gross</a>

LG
 
Hi,

in der DB hilft die Dir nichts. Javascript läuft auf dem Client, also im Browser. Du musst den img-Tags die IDs geben: <img id="id_klein" src="...">

LG
 
Hi danke noch mal für die Hilfe das hat geklappt mit den ids. Ich hab jetzt nur noch ein kleines Problem, aber irgendwie komm ich darauf nicht und dreh mich hier ein wenig im Kreis.
Ich lasse mir ja das Bild so ausgeben:
PHP:
if(isset($_GET['Bild'])){
		
	echo '<img id="id_klein" src="../../'.$_GET['Bild'].'" alt="Kein Bild vorhanden">';
	echo '<img id="id_gross" src="../../'.$_GET['k'].'" alt="Kein Bild vorhanden">';
	}
Das Problem was ich nun habe ist, das er mir ja am Anfang wenn Bild gesetzt ist beide Bilder ausgibt, was ja klar ist, weil ich beide angegeben habe. Und wenn ich dann auf die Links klein oder gross klicke verschwindet ein Bild und es wird nur noch eins angezeigt. Wie kann ich denn verhindern das am Anfang beide Bilder angezeigt werden ? Es ist klar das wenn ich nur eins angebe,das er mir nur eins anzeigt, nur dann kennt er wenn ich auf die Links klein oder gross klicke halt auch nur eins und ich muss ja beide img tags angeben da ich ja jedem eine andere Id zuweise.
 

Neue Beiträge

Zurück