 |
| Hinweise |
Willkommen im TP-Hilfe-Forum!Dies ist ein Forum zu den Themen Photoshop, Dreamweaver, Flash, Selbständigkeit und mehr, in dem Du Hilfe, Anleitung oder eine Lösung zu Deinen Problemen erhältst. Aktuell bist Du in unseren Foren als Gast mit reinen Leserechten unterwegs. Wenn Du Dich registrierst, kannst Du eigene Themen verfassen, deine Frage stellen und privat mit anderen TPlern kommunizieren. Weitere Foren werden zugänglich, und Du wirst – falls gewünscht – per Mail über neue Beiträge informiert. Die Registrierung ist schnell und kostenlos. Sollten bei der Registrierung Fragen auftauchen, reicht ein Klick in unsere Hilfe - Häufig gestellte Fragen oder eine kurze Mitteilung an das Support-Team. Viel Spaß bei Traum-Projekt.com |
13.09.2005, 12:54
|
#1
|
|
TP-Junior
Registriert seit: Sep 2005
|
Bilder mit Link zufällig anzeigen
Erst einmal ein herzliches Hallo an alle (bin neu hier)!
Obwohl ich schon etwas länger die Beiträge lese, ist dies mein erster Thread...
Nun zu Thema:
Ich bin gerade dabei meine Website neu zu gestalten. Dazu möchte ich auf der Startseite drei Bilder, die mit unterschiedlichen Links versehen sind, zufällig aus einem Pool von ca. 40 Bilder anzeigen.
Damit ihr euch das ein wenig vorstellen könnt hier der Entwurf
Wäre für jeden Lösungsvorschlag dankbar.
PS. Mein Server unterstützt PHP.
|
|
|
13.09.2005, 14:01
|
#2
|
|
TP-Urgestein
Registriert seit: Nov 2003
Ort: NRW
|
Willkommen im TP.
Dein Problem wäre besser im Dynamik Bereich aufgehoben.
Ggf. kann es ja einer verschieben.
Zum Problem:
Erzeuge ein mehrdimensionales Array und dann nutze die rand function.
Ansatz:
PHP-Code:
<? $bilder['bild']= array("01.jpg", "02.jpg", "03.jpg"); $bilder['url'] = array("http://www.link1.de", "http://www.link2.de", "http://www.link3.de");
$zuffi = rand(0, count($bilder['bild'])-1);
echo "<a href=\"".$bilder[url][$zuffi]."\" target=\"_blank\"><img src=\"".$bilder['bild'][$zuffi]."\" border\"0\"></a>"; ?>
Wichtig ist halt, dass die Anzahl der Link zu den der Bilder passt.
|
|
|
13.09.2005, 16:25
|
#3
|
|
TP-Junior
Registriert seit: Sep 2005
|
Vielen Dank für deine Antwort.
Vielleicht habe ich mich ein wenig unklar ausgedrückt oder ich verstehe den Code falsch.
Aber ich möchte jedem Bild einen definierten Link zuweisen (je nach dem in welchem Album das Bild liegt)
Bin jedoch ein Rookie was PHP angeht...
Kann ich diesen Code einfach in den Head-Bereich meiner HTML-Seite schreiben?
PS. Sorry, dass ich das falsche Forum gewählt habe. Immer diese Anfänger 
|
|
|
13.09.2005, 16:34
|
#4
|
|
TP-Urgestein
Registriert seit: Nov 2003
Ort: NRW
|
Und was macht der Code?
Jedes Bild hat doch einen festen Link
Bild 1 hat Link 1; Bild 2 hat Link 2, usw.
Via rand() wird ja nur gewählt, welches Arraybild gewählt wird.
Also hast du doch eine feste Zuordnung.
Wo muss das Script hin?
Head? Nee nee, das ist hier kein JavaScript mehr.
Das Script kann direkt an die Stelle, wo die Bildausgabe erfolgen soll.
Das echo wird dann direkt da ausgeführt.
Jedoch wird da z.Z. nur ein Bild ausgegeben, du musst es halt noch so erweitern, dass dann 3 ausgegeben werden.
Aber bedenke zu Prüfen, dass ein Array-Element nicht zweimal aufgegeben wird, sonst hast ein Bild doppelt.
|
|
|
13.09.2005, 16:50
|
#5
|
|
TP-Specialist
Registriert seit: Nov 2004
Ort: Die Insel in Europa die aus Europa erst Europa macht _________________________ Nähe Lenzburg
|
Da Du 3 Bilder haben willst, und sicher jedes nur einmal, mache 3 mal rand()
Das erstemal wie beschrieben und belege eine Variable damit ($B1)
beim zweiten und drittenmal in einer Iteration
bis der ermittelte Wert (1 - 40) ein anderer ist, als bereits in $B1 und $B2 festgehalten.
__________________
[321 Name="Joe"]
wie immer, lieber gleich mit notepad, dem Editor meines Vertrauens
[/321]
use my HTML-Tester
Motto'06: Mut zur deutschen Sprache!
|
|
|
13.09.2005, 16:54
|
#6
|
|
TP-Junior
Registriert seit: Sep 2005
|
Tut mir leid, ich steh' leider immer noch ein wenig auf der Leitung.
Wenn ich die Bilder in einem Ordner (z.B. images) habe. Wie müsste ich den Code dann ergänzen?
Den "echo" Befehl kann ich dann einfach auf die 3 Zellen, in denen die Bilder angezeigt werden sollen, aufteilen oder?
Vielen Dank für deine Geduld!
|
|
|
13.09.2005, 16:56
|
#7
|
|
TP-Urgestein
Registriert seit: Nov 2003
Ort: NRW
|
So hier mal eine Lösung, die dann auch die Sicherheit bietet, das kein Bild doppelt vorkommt. ISt der Grundgedanke von 321, halt nur elegant gelöst
PHP-Code:
<? $bilder['bild']= array("images/01.jpg", "images/02.jpg", "images/03.jpg", "images/04.jpg", "images/05.jpg"); $bilder['url'] = array("http://www.link1.de", "http://www.link2.de", "http://www.link3.de", "http://www.link4.de", "http://www.link5.de"); $zuffis = array(); function bildausgabe($i, $anzahl){ global $zuffis; $zuffi = rand(0, count($anzahl)-1); if (!in_array ($zuffi, $zuffis)){ $zuffis[] = $zuffi; if($i < 2) bildausgabe($i+1, $anzahl); } else bildausgabe($i, $anzahl); } bildausgabe(0, $bilder['bild']); foreach($zuffis as $zuffi) echo "<a href=\"".$bilder[url][$zuffi]."\" target=\"_blank\"><img src=\"".$bilder['bild'][$zuffi]."\" border\"0\"></a>\n"; ?>
Geändert von webcreate (13.09.2005 um 17:02 Uhr).
|
|
|
13.09.2005, 17:05
|
#8
|
|
TP-Specialist
Registriert seit: Nov 2004
Ort: Die Insel in Europa die aus Europa erst Europa macht _________________________ Nähe Lenzburg
|
Hab auch keinen fertigen Code zur Hand, aber wenn ein Tipp reicht ...
Du wirst das Directory auslesen müssen und die Dateinamen der Bilder in ein Array schubsen.
Desweitern wirst Du eine Datei/DB-Tabelle benötigen, die zB. Bilddateinamen und die entsprechenden Links enthält.
Danach folgt oben beschriebenes.
Und richtig, echo von $B1, $B2 und $B3
sowie von $L1, $L2 und $L3 (für die Links)
schreibst Du in Ergänzung des <a ..> und des <img .../>
Die Seite muss deineseite.php statt deineseite.html heissen.
__________________
[321 Name="Joe"]
wie immer, lieber gleich mit notepad, dem Editor meines Vertrauens
[/321]
use my HTML-Tester
Motto'06: Mut zur deutschen Sprache!
|
|
|
13.09.2005, 17:47
|
#9
|
|
TP-Junior
Registriert seit: Sep 2005
|
Es funktioniert!!!!
Ihr seid echt der Wahnsinn, vielen Dank!
Wie könnte ich jetzt noch einen kleinen Abstand zwischen den Bildern erzeugen?
PS. Die Tabelle wird noch überarbeitet.
|
|
|
13.09.2005, 17:52
|
#10
|
|
TP-Urgestein
Registriert seit: Nov 2003
Ort: NRW
|
Du solltest dich mal mit CSS beschäftigen, da findet sich auch ne Lösung
http://www.css4you.de
|
|
|
13.09.2005, 17:54
|
#11
|
|
TP-Specialist
Registriert seit: Nov 2004
Ort: Die Insel in Europa die aus Europa erst Europa macht _________________________ Nähe Lenzburg
|
Das wäre dann nur reines HTML und/oder CSS!
HTML: <img ... hspace=8 oder vspace=12
CSS: margin: 0 1 2 3 für top right bottom left
__________________
[321 Name="Joe"]
wie immer, lieber gleich mit notepad, dem Editor meines Vertrauens
[/321]
use my HTML-Tester
Motto'06: Mut zur deutschen Sprache!
|
|
|
13.09.2005, 18:21
|
#12
|
|
TP-Junior
Registriert seit: Sep 2005
|
Vielen, vielen Dank. Ihr seid wirklich klasse!
|
|
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
Thema durchsuchen |
|
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 22:38 Uhr.
|
 |