WinFuture-Forum.de: Aus Frame Hauptfenster Funktion Ansprechen - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
Seite 1 von 1

Aus Frame Hauptfenster Funktion Ansprechen


#1 Mitglied ist offline   pix 

  • Gruppe: aktive Mitglieder
  • Beiträge: 58
  • Beigetreten: 13. November 05
  • Reputation: 0

  geschrieben 06. Juli 2007 - 17:18

Hallo Leute!

Ich habe ein Problem bei meiner Seite. Ich habe ein kleines Portal erstellt wo man etwas in den Warenkorb tuen kann. Das ganze basiert auf PHP + MySQL.

Ich habe eine Hauptseite wo ein Navigationsmenü ist und ein iFrame. In dem Navigationsmenü ist ein Tab "Einkaufskorb".
Im iFrame ist die eigentliche Seite.

Wenn ich jetzt im iFrame etwas in den Warenkorb hinzufüge soll sich im Navigationsmenü der Wert hinter dem Tab "Einkaufskorb" auf z.B. Einkaufskorb [1] erhöhen. Das gleiche soll natürlich auch passieren wenn ein Artikel entfernt wird.

Ich zeige noch einmal den groben Aufgau anhand eines Paint Screenshots.

Eingefügtes Bild

Ich weiß nicht wie ich das bewerkstelligen soll.

Die normale Seite habe ich schon "hauptfenster" benannt und das iFrame "inline".

Das Tabmenü wurde durch CSS und JS erstellt.

Das Anzeigen des Inhalts geht schon aber nur das aktualisieren geht nicht.

<div>
<ul>
<li><a href=\"popup.php?kasse\" target=\"inline\" rel=\"menu4\" >Einkaufskorb [$anzahlnk]</a></li>
</ul>
</div>


Ich hoffe das Codebeispiel reicht.

Keine Ahnung wie man das realisieren könnte. Durch PHP glaub ich nicht oder? JS wär ok aber keine Ahnung wie genau.
Hab auch schon heute sehr sehr lange in google gesucht aber bin nicht wirklich fündig geworden.

Und ich möchte auf keinen Fall das Hauptfenster refreshen, da ich sonst wieder auf die start.php im Frame komme anstatt der popup.php

Hoffentlich könnt Ihr mir helfen!

Danke im Vorraus!


Grüße
pix
Eingefügtes Bild
0

Anzeige



#2 Mitglied ist offline   pix 

  • Gruppe: aktive Mitglieder
  • Beiträge: 58
  • Beigetreten: 13. November 05
  • Reputation: 0

geschrieben 07. Juli 2007 - 19:57

Weiß keiner Rat?

Bin echt am Verzweifeln :-( :)
Eingefügtes Bild
0

#3 Mitglied ist offline   MNG 

  • Gruppe: aktive Mitglieder
  • Beiträge: 288
  • Beigetreten: 29. März 06
  • Reputation: 0

geschrieben 07. Juli 2007 - 20:32

Also, im Wesentliche hast du zwei Möglichkeiten:
1. Nur mit PHP
Dann musst du dafür sorgen, dass die gesamte Seite neu geladen wird, sobald jemand etwas in den Warenkorb legt. Dadurch wird die Anzeige oben ja mit neu geladen, so dass dann die richtige Anzahl Artikel im Warenkorb oben auftaucht.
2. Mit JavaScript
Du änderst diese Codezeile
<li><a href=\"popup.php?kasse\" target=\"inline\" rel=\"menu4\" >Einkaufskorb [$anzahlnk]</a></li>

bspw. so ab
<li><div id=\"anz_art\"><a href=\"popup.php?kasse\" target=\"inline\" rel=\"menu4\" >Einkaufskorb [$anzahlnk]</a><div></li>

und kannst dann per Javascript darauf zugreifen, in etwa so
var aktuelleAnzahl = 0;
function aktualisiereAnzahlArtikel()
{
        aktuelleAnzahl
+= 1;
        document
.getElementById('anz_art').innerHTML = "Einkaufskorb " + aktuelleAnzahl;
}

Die Funktion aktualisiereAnzahlArtikel musst du dann aufrufen, wenn jemand etwas in den Warenkorb legt.
Ich kann das hier gerade alles nicht testen, aber so in etwa halt :)
0

#4 Mitglied ist offline   pix 

  • Gruppe: aktive Mitglieder
  • Beiträge: 58
  • Beigetreten: 13. November 05
  • Reputation: 0

geschrieben 07. Juli 2007 - 23:02

Vielen Dank für deine Antwort MNG!

Ich habe versucht deinen Lösungsansatz umzusetzen. Leider klappts nicht so ganz.

Ich habe ja gesagt das ich mein Hauptfenster also dort wo das iFrame eingebunden ist in "hauptfenster" genannt habe.

Außerdem habe ich aus Probierlaune mal die Zeile in
hauptfenster.document.getElementById('anz_art').innerHTML = "Einkaufskorb " + aktuelleAnzahl;

umgeändert.
Jetzt sagt er aber das 'hauptfenster' ist undefiniert. Habs aber mit dem Befehl <body onLoad="self.name='hauptfenster'> definiert.
Ist das überhaupt richtig so?

Desweiteren ist es für mich ungeschickt wenn ich den Tab in den Code änder
<li><div id=\"anz_art\"><a href=\"popup.php?kasse\" target=\"inline\" rel=\"menu4\" >Einkaufskorb [$anzahlnk]</a><div></li>

Weil dadurch ist mein ganzes Menülayout zerstört. :)

Und ja mit PHP neu laden ist doof, weil ja dann das iFrame auf die Startseite springt. In meinem Fall news.php.

Hoffentlich kann mir jemand noch einen Lösungsansatz bieten.
Eingefügtes Bild
0

#5 Mitglied ist offline   MNG 

  • Gruppe: aktive Mitglieder
  • Beiträge: 288
  • Beigetreten: 29. März 06
  • Reputation: 0

geschrieben 08. Juli 2007 - 02:14

IFrames sind halt unhandlich. Es müsste so gehen:
parent.document.getElementById('anz_art').innerText = "Einkaufskorb " + aktuelleAnzahl;


Wenn's dir dein Layout zerhaut, dann lass den div weg und schreib nur
<li><a id=\"anz_art\" href=\"popup.php?kasse\" target=\"inline\" rel=\"menu4\" >Einkaufskorb [$anzahlnk]</a></li>

0

#6 Mitglied ist offline   dblay 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.246
  • Beigetreten: 18. März 07
  • Reputation: 1

geschrieben 08. Juli 2007 - 11:22

wenn du mit php arbeitest, dann würde ich dir folgendes empfehlen: schmeiß den iframe raus!

dafür machst du einen div rein, mit overflow:scroll, das hat den selben effekt wie ein iframe, aber du hast den code zusammen in einer datei. den inhalt für den div lässt du dir von php includen, entsprechend, auf welcher seite du gerade bist.

dann ist es nämlich auch gar kein problem mehr, die warenkorb-sache da per javascript anzusprechen, oder die seite auch zu refreshen, weil sie dann ja eine eindeutige url bekommt! und du musst nicht mehr mit den unterschiedlichen fensternamen rumhantieren. wenn mich nicht alles täuscht, kannst du aus einem iframe sowieso nicht auf das hauptfenster zugreifen, also von daher ... (stichwort xss)
Zeit ist, was verhindert, dass alles gleichzeitig passiert.
0

#7 Mitglied ist offline   pix 

  • Gruppe: aktive Mitglieder
  • Beiträge: 58
  • Beigetreten: 13. November 05
  • Reputation: 0

geschrieben 08. Juli 2007 - 15:36

Vielen Dank für eure Antworten MNG und dblay!

@MNG: Yes, so hat es geklappt! Danke Danke!

@dblay: Dein Tip mit overflow:scroll muss ich mir noch genauer anschauen. Ich kann jetzt nicht abschätzen wie lange das dauern würde alle iFrame Seiten auf das overflow:scroll umzustellen.
Desweiteren weiß ich noch garnicht wies richtig funktioniert. Aber ich schaus mir mal an. Danke!


Liebe Grüße
pix
Eingefügtes Bild
0

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0