WCM Forum

WCM Forum (http://www.wcm.at/forum/index.php)
-   Programmierung (http://www.wcm.at/forum/forumdisplay.php?f=17)
-   -   HTML-Problem (http://www.wcm.at/forum/showthread.php?t=116860)

P.St 27.11.2003 10:06

HTML-Problem
 
Guten Morgen,

ich habe da ein Problem beim erstellen einer Web-Site, welches ich alleine nicht loesen kann. Suche daher um Hilfe und/oder gute Tips dazu.
Auf der Web-Site gibt es eine zentrale Seite (ich nennen sie einfach "Home"). zu dieser "Home" Seite kommt man von einigen anderen Seiten. Also man kann z.B. von der Seite "A","B","C" und "D" auf Home springen. Von Home geht es zu einigen Seiten mit einen Fotoalben weiter. Von diesen Fotoalben kann man nur wieder zurueck zu "Home", sonst nirgends hin gehen. Ich will jetzt auf der Seite "Home" einen Button einrichten, mit dem man wieder zurueck zu "A","B","C" der "D" springen kann. Wichtig dabei ist, wenn man z.B. von "A" nach Home gegangen ist, dass dieser Button wieder nach "A" zurueckzeigt. Genau so natuerlich auch bei "B","C" und "D". Der Button soll sich also merken woher man gekommen ist und dorthin zurueckfueren. Wichtig ist auch noch, mit dem Button darf man auf keinen Fall wieder zu den Fotoalben springen koennen, dafuer gibt es auf "Home" eigene/andere (Text)Links!
Ist da ueberhaupt moeglich? Mit JS, DHTML oder wie auch immer? Wenn ja wie? Bin fuer jede Anregung, jeden Tip dankbar.
Hoffentlich habe ich alles nicht zu verwirrend beschrieben.

Peter

Seppo 27.11.2003 11:07

da gibts ein javascript!

einfach den button mit function historyback() belegen

ich hoff es heisst so.. kann sein das es bissal anders heisst!

grüße

pc.net 27.11.2003 11:22

Zitat:

Original geschrieben von Seppo
da gibts ein javascript!

einfach den button mit function historyback() belegen

ich hoff es heisst so.. kann sein das es bissal anders heisst!

grüße

das berücksichtigt dann aber nicht seinen wunsch, nicht zum fotoalbum zurückzukommen ;)

P.St 27.11.2003 11:32

historyback() kannte ich schon, damit gehts aber sicher nicht. Gibts eine Moeglichkeit die Seitenadressse von der man herkommt zu speichern und dann in die Adresse des Buttons zu setzen? So koennte es gehen...

Preacher 27.11.2003 11:40

Du könntest einmal versuchen, ob Du dafür das Objekt "document.referer" verwenden kannst.

P.St 27.11.2003 12:21

dokument.referer? so gut kenn' ich mich mit JS leider nicht aus, wie und wo muss ich das Objekt einbinden? Was bewirk das Objekt? Kann man damit die "Herkunfs-Adresse" auslesen? Wenn ja, wie?

Peter

snowman 27.11.2003 14:28

http://www.google.at/search?hl=de&ie...script&spell=1

gruss,
snowman

jak 28.11.2003 18:05

Zitat:

Original geschrieben von pc.net
das berücksichtigt dann aber nicht seinen wunsch, nicht zum fotoalbum zurückzukommen ;)
wenn man weiß, wie weit Seite A in der History zurückliegt dann schon:
history.go(-7) um sieben Seiten zurückzugehen.

http://www.host.at/adresse/seite.htm...komme.von/hier
Alternative: mit window.location.search kann man auf den Teil einer Url hinter dem Fragezeichen zugreifen. Jetzt muss man nur noch die alte Seite an die Url anhängen. Hab' aber keine Ahnung wie das geht.

Jak

tosto 29.11.2003 13:22

@jak
das problem dabei ist nur, wenn der user in dem photoalbum noch achtmal hin und her springt, dann stimmt der eintrag -7 auch nicht mehr.
man könnte das problem so lösen mit einer variablen lösen in die z.b. a geschrieben wird wenn man auf seite a geht. der button leist diese variable dann aus und springt dann zu der seite.
man könnte sowas mit php lösen. in js weiß ich nicht ob man da variablen so übernehmen kann von einer seite in die andere.
wenn des mit php gemacht wird sollte man auch my sql nehmen. sonst könnte es probleme geben.
ich mach mal nen code dafür obs auch ohne my sql klappt.

ciao

jak 29.11.2003 17:56

Deshalb hab ich ja geschrieben:
wenn man weiß, wie weit Seite A in der History zurückliegt
:rolleyes:

Die zweite Methode ist wahrscheinlich besser, ich weiß nur nicht wie man etwas an eine Url anhängt.

Jak

tosto 30.11.2003 12:23

also hab des mal mit php grad;)gemacht.
hier der code:

button.php
PHP-Code:

<?php
 $fp 
fopen("variable.txt","r");
   if (
$fp)
   {
      
$variable fgets($fp100);
      echo 
$variable;
      if (
$variable=="a")
        
$url="seitea.php";
      else
        {
        if (
$variable=="b")
          
$url="seiteb.php";
        else
          
$url="seitec.php";
        }
      
fclose($fp);
   }
echo 
'[url="' $url '"]Button[/url]';
?>

seitea.php
PHP-Code:

<?php
   $fp 
fopen("variable.txt","w");
   if (
$fp)
   {
      
flock($fp,2);
      
$nl chr(13) . chr(10);
      
fputs ($fp"a");
      
flock($fp,3);
      
fclose($fp);
   }
?>

nach dem muster von seitea.php gehst du dann vor.
einfach die buchstaben ändern und des klappt.
wenn de die sieten anders nennen wilst musst du in button.php jeweils den namen ändern. und dennseitenmanedann auch.
wenn es mehrere seiten sein sollen einfach in button nochmals ne if abfrage einfügen.
ach ja du musst auf deinem web server von hand eine datei namens variable.txt erstellen die keinen inhalt hat.
dann klappt alles von selbst.
so, bei fragen schreien!
und viel spaß noch...;)

ciao

P.St 01.12.2003 16:23

Super, werde den Code testen und dann berichten!

Vielen Dank schon mal,

Peter

tosto 01.12.2003 20:38

wenn du willst setz ich dir des auch noch mit my sql um. wenns des bracuht aber da muss ich dann noch mal grad handanlegen.;)

ciao

P.St 02.12.2003 08:21

hmmm, php?
 
Hallo tosto!

php? Leider habe ich ueberhaupt keine Ahnung von php. Habe zwar gerade im Netz nachgelesen, wie man php in eine HTML-Seite einbindet u.s.w., viel schlauer bin ich aber jetzt auch nicht. Auch soll nicht jeder Server php zulassen, kann es der chello-Server? Dort soll einmal meine HP liegen.
Was ich braeuchte waere eine (einfache) Moeglichkeit deinen php-Script, oder was gleichwertiges, einfach in mein bestehendes Homepage-Geruest einzubauen. Sodass eben nur die History (Back-Button des Browsers und Back-Button auf der Seite) so funktioniert, wie ich es mir im ersten Posting vorgestellt habe.

Gibt es das? Kannst du mir da helfen?

Liebe Gruesse und schon mal vielen Dank...

Peter

tosto 02.12.2003 20:26

also ob dioe bei chello php anieten weiß ich nicht. frag da mal nach. eigentlich sollten die des schon machen, ist ja kostenlos und ohne geht heute schon fast nichts mehr.
wenn du willst schreibe ich dir eine komplexe anleitung zu dem php script, weil in java oder javascript kannn ich dir des leider nicht übersetzen...:heul: sry!
vielleicht kanns ein anderer.

ciao

jak 02.12.2003 23:46

Möglichkeit in Js:
die Links benennen, an alle Links mit document.getElementById("linkname").href+="?"+zahl ;
die Variable zahl (=Anzahl der Seiten seit Beginn) anhängen und dann mittels window.location.search die Zahl wieder extrahieren und in den history.go(-zahl) link einbauen. Ob's geht???

Jak

tosto 03.12.2003 20:35

setz des mal innen kompletten code umm ob des hinhaut.
ich kann js nämlich null. wäre aber interessant und wesentlich einfacher, denk ich.

ciao

P.St 04.12.2003 13:27

@jak

kann leider mit deinen Ideen nichts anfangen, dafuer ist mein JS-Koennen einfach zu schwach... kannst du mir helfen? Wie hast du das gemeint?

Peter

heli2sky 04.12.2003 16:13

soweit ich weiß kann der chello server kein php...

jak 05.12.2003 19:45

Ich hab an etwas in der Form gedacht:

Code:

<body onload="javascript:increaseNumber()">
dahin
dahin
dahin


wo komm' ich her???
<script language="JavaScript">
 function toNumber(str){
  for(var j=100;j>0;j--)if(str.indexOf("?"+j)==0)return j;
  return 0;
 }

 function increaseNumber(){
  var num=toNumber(window.location.search);
  num++;
  for(var i=0;i<document.links.length;i++) pos=document.links[i].href+="?"+num;
  var newUrl="javascript:history.go("+num*-1+")";
  document.getElementById("iWantBack").href=newUrl;
 }
</script>
</body>

Erklärung:
die Funktion toNumber sucht in einem String der ihr als Parameter übergeben wird (str) nach der Zeichenfolge ?irgendeineZahl (z.B.:?1, ?25, usw.). Dazu wird in einer for Schleife mithilfe von indexOf geschaut ob die Zeichenfolge an erster Stelle von str steht (indexOf()==0) Wenn das so ist, wird die Zahl zurückgegeben, sonst 0.

Diese Funktion wird in increaseNumber aufgerufen, und zwar mit dem Teil der Url der hinter dem ? steht (inklusive ?). Das macht window.location.search . Jetzt steht in num 0 oder die Zahl der bisher besuchten Seiten, daher wird num um eins erhöht (num++).
Dann werden in einer for schleife alle Links der Seite durchlaufen und an alle die Zeichenkette ?+num angehängt (z.B. ?3) (a+=b bedeutet das selbe wie a=a+b). Zum schluß wird noch der Link fürs zurückgehen auf den richtigen Wert gesetzt.

Ich hoffe das es so funktioniert, die Lösung mit php wäre sicher sauberer.
Jak

P.St 07.12.2003 18:38

@jak

Danke mal fuer's Erste, werde mich mit dem JS-Script einmale auseinandersetzen, danach berichte ueber Erfolg oder eben das Gegenteil... PHP ist sicher besser, wenn es aber der chello-Server net kann???

Peter

tosto 10.12.2003 20:57

zieh um!
wie im echten leben:wenn der vermieter zickt, dann kündigt man.
und wenn die bei chello nicht fähig sind etwas kostenloses was standart sein sollte einzubinden....

naja.

ciao

Flink 10.12.2003 21:35

Verwende Cookies unter javascript:
document.cookie

Beispiele dazu gibt es unter JavaScript - Stefan Koch

Jede Seite setzt ein Cookie eines bestimmten Namens bevor der HREF aufgerufen wird. Später wird von HOME location.href = holeCookie(name) aufgerufen bzw. wieder auf HOME gesetzt, falls nicht auf die Seite zurückgekehrt werden soll.

jak 10.12.2003 21:51

An die einfachsten Dinge denkt man meistens nicht :rolleyes:

Jak

P.St 12.12.2003 09:52

@Flink

Danke fuer den Tip mit den Cookies, sowie den (Super)Link.

Cookies gefallen mir zwar nicht gut, aber werde es mir ansehen. Aber ich hebe auf der Seite etwas anderes gefunden, und zwar:

Man kann scheinbar "Daten" wie Text u.s.w von einer HTML-Seite zur einer anderen weiterzugeben siehe dazu:

http://www.dpunkt.de/javascript/down...ap18/index.htm

und dort search1.htm. Dort wird ein Texte in ein Feld eingegeben und dieser in einer zweiten Datei ausgelesen und wieder in ein textfeld geschrieben. Gut mit so einem Script muesste man ja auch eine "Kennung" der Herkunftseite uebergeben koennen... wenn man jetzt diese "Kennung" ausliest koennte man damit ja auch den Back-Button steuern...

Leider gelingt es mir nicht die "Datenuebergabe" so umzugestalten, dass ich nicht immer was in das Textfenster eingeben muss, bzw. die Ausgabe wieder in einem Textfenster erfolgt. Hast da 'nen Tip dazu? Oder gibt es auch eine andere Moeglichkeit Daten von einem HTML-Datei in eine andere weiterzugeben?

Peter

jak 12.12.2003 16:46

Das search macht genau das was ich weiter oben gepostet habe.
(document.search wertet den Teil der Url nach dem ? aus).
Mit meiner Funktion müsste es daher gehen.

Jak


Alle Zeitangaben in WEZ +2. Es ist jetzt 02:07 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag