zurück zur Startseite
  


Zurück XHTMLforum > (X)HTML und CSS > CSS
Seite neu laden Links in <div>-Container laden ohe Frames zu verwenden

Antwort
 
LinkBack Themen-Optionen Ansicht
  #21 (permalink)  
Alt 24.04.2008, 14:16
Neuer Benutzer
neuer user
 
Registriert seit: 23.04.2008
Beiträge: 15
Graveto befindet sich auf einem aufstrebenden Ast
Standard ein noch größeres Lob für die Ajax Lösung

...hab die Lösung meines Probs gefunden. Ich dachte die Position des auszugebenden Inhalts wird durch die Position der sndReq()-Methode bestimmt. Hab grad rausgefunden, dass der div in dem der Inhalt liegen soll in der output.php definiert wird!

Oh man, dafür hab ich Stunden gebracht. So is das halt. Aber wenigstens was gelernt!

Danke nochmal! War ne große Hilfe!!!
Mit Zitat antworten
Sponsored Links
  #22 (permalink)  
Alt 24.04.2008, 17:12
Neuer Benutzer
neuer user
 
Registriert seit: 24.04.2008
Beiträge: 17
luckyluke befindet sich auf einem aufstrebenden Ast
Standard

Hallo,

hatte lange genau dasselbe Problem wie die meisten hier =), wollte keine iFrames mehr benutzen, wusste aber nicht genau wie ich anfangen sollte, etwas mit divs & javascript plus ev. eine prise serverseitige skripte, nur woher nehmen wenn man des php nicht mächtig ist? =) Bin zwar noch nicht ganz fertig mit der übertragung des AJAX Vorschlags auf meine Seite, aber ich habe grosse Hoffnungen, dass es diesmal funktionieren könnte, denn meine Seite ist nur ein klein wenig komplexer als das Beispiel und hier komme ich meiner Meinung nach noch nicht zu einer befriedigenden Lösung...

Also: Ich habe anstatt einem div-container dessen Inhalt über einen Link neu geladen werden soll gleich zwei, welche im Idealfall beim Klicken des Navibuttons gleichzeigit geladen würden. Bei der letzten Version mit den iFrames hab ich einfach ein onload-Befehl in der .html des zuerst geladenen iFrames eingebaut, der dann den Inhalt in das zweite iFrame hineingeladen hat

Navibutton (Link) --> läd erste html-Seite in iFrame --> body onload in dieser ersten html Seite läd die zweite html-Seite

das geht nun logischerweise nicht mehr, da ja die blöden iFrames endlich weg sind, tja, nur was mach ich nun...

Wie kann ich mit den in diesem Thread vorhandenen Skripten mit einem Navibutton gleich zwei div container mit neuem Inhalt bestücken (gleichzeitig oder nacheinander...)??

ich danke Euch allen schon mal für Eure Hile!

LuKe
Mit Zitat antworten
Sponsored Links
  #23 (permalink)  
Alt 24.04.2008, 17:28
Neuer Benutzer
neuer user
 
Registriert seit: 23.04.2008
Beiträge: 15
Graveto befindet sich auf einem aufstrebenden Ast
Standard genau mein Problem

Will auch den Inhalt von zwei divs mit einem klick ändern. Ich versuch mal rum. Wenn ich ne Lösung finde werde ich sie posten. Wenn's jemand schon weiß darf man mir gerne zuvorkommen!
Mit Zitat antworten
  #24 (permalink)  
Alt 24.04.2008, 19:29
Neuer Benutzer
neuer user
 
Registriert seit: 24.04.2008
Beiträge: 17
luckyluke befindet sich auf einem aufstrebenden Ast
Standard

OK, grundsätzlich funktionierts bei mir (habe erst den Button "Profil" so programmiert, dass er auf das Skript zugreift, also AJAX von diesem Thread hier)

hier gehts zur Seite an der ich arbeite^^

habe aber neben dem erwähnten "ich will zwei divs auf einmal neu füllen"-Problem noch ein weiteres...: Ich habe zwangsläufig die index.html im dreamweaver als index.php gespeichert und jetzt zerreissts mir die Seite, ein blick auf die Seite (Link oben) erklärt's wohl am besten =/...hatte sowas schonmal und irgendwie hab ichs dann auch hingekriegt, nur weiss ich nicht mehr an was das damals lag...ist damals aber auch beim wechsel von stinknormalem html zu einer php-Seite passiert...ev. kann mich ja da jemand auf die richtige Spur bringen =)...


zum "zwei divs laden"-Problem hab ich mir folgende überlegungen gemacht:

man könnte ja einfach einen zweiten onClick="sndReq('getProfil');" in das a-tag hineinpacken bzw. das ganze so lösen: onClick="sndReq('getProfilbigbox'); sndReq('getProfilsmallbox');"

ich weiss 1. nicht ob das funktioniert (rein javascript-technisch-standart-konform-mässig =D) und 2. nicht wie ich das umsetzen soll, denn der zweite Teil (getProfilsmallbox) muss auf eine andere Datei zugreifen (in der output.php verlinkt) und ich weiss nicht ob das geht (vermutlich nicht), da in der output.php die ID des DIV-Containers angegeben wird, man müsste im Prinzipt eine zweite output.php haben in der die ID des zweiten DIV-Containers steht und dort ecke ich an^^...und ja, ich weiss, dass meine Seite alles andere als professionel daherkommt...ist aber auch noch in der Aufbauphase =)...

danke für jede Hilfe!

Geändert von luckyluke (24.04.2008 um 19:42 Uhr)
Mit Zitat antworten
  #25 (permalink)  
Alt 24.04.2008, 20:00
Erfahrener Benutzer
XHTMLforum-Kenner
 
Registriert seit: 09.07.2004
Beiträge: 1.103
cgdesign befindet sich auf einem aufstrebenden Ast
Standard

Erstell doch noch eine Funktion wie diese und benenn sie anders
Code:
function sndReq(action) { 
    http.open('get', 'output.php?action='+action); 
    http.onreadystatechange = handleResponse; 
    http.send(null); 
}
Auf welchen HTML-Teil soll denn dann die zweite Box zugreifen? Bzw. wo in was soll denn dann der zweite Teil reingeschrieben werden?

Und dann kannst du auch mit onclick="sndReq('getProfil');sndReq_2('getProfilsm allbox')" 2 Inhalte laden, zumindest stell ich mir das jetzt so vor.
Mit Zitat antworten
  #26 (permalink)  
Alt 24.04.2008, 21:24
Neuer Benutzer
neuer user
 
Registriert seit: 24.04.2008
Beiträge: 17
luckyluke befindet sich auf einem aufstrebenden Ast
Standard

Hm, klingt gar nicht so abwegig =), werd's gleich versuchen!

Also, der zweite Teil, also die 2. html Datei soll in den roten Bereich (unten)

Code:
<tr>
		<td><img id="index_11" src="http://xhtmlforum.de/images/index_11.png" width="2" height="418" alt="" /></td>
		<td>
        	<div id="smallbox" style="width:240px; height:418px; overflow:auto; border:0px;"></div>
		</td>
		<td><img id="index_13" src="http://xhtmlforum.de/images/index_13.png" width="2" height="418" alt="" /></td>
		<td colspan="7">
			<div id="bigbox" style="width:476px; height:418px; overflow:auto; border:0px;">
				<script type="text/javascript"> 
      			sndReq('getHome'); 
      			</script>

            </div>
		</td>
		<td><img id="index_15" src="http://xhtmlforum.de/images/index_15.png" width="2" height="418" alt="" /></td>
	</tr>

das grüne ist die grössere Box, die bereits funktioniert (mit dem "Profil" Button)...

danke für die Inspiration =)

Geändert von luckyluke (24.04.2008 um 22:19 Uhr)
Mit Zitat antworten
  #27 (permalink)  
Alt 24.04.2008, 22:14
Neuer Benutzer
neuer user
 
Registriert seit: 24.04.2008
Beiträge: 17
luckyluke befindet sich auf einem aufstrebenden Ast
Standard

OK, hab das mal alles probiert, nur funktionierts jetzt leider noch weniger als vorher =)...nun geht gar kein Button mehr, obwohl alle "richtig" programmiert wären, es passiert einfach nichts mehr...habe folgendes gemacht (ev. ist ein Blick in den Quelltext der Seite aufschlussreicher)

Das ist der Beispielbutton "Profil" (besteht aus einem verlinkten rollover Bild, für diese Diskussion relevant ist nur der rote teil des Javascripts, das andere ist der Rollovereffekt)

Code:
<a href="javascript:void(0);" onClick="sndReqBB('getProfilBB');sndReqSB('getProfilSB');"
            	onmouseover="MM_swapImage('Profil Button','','images/index_04ro.png',1);  window.status='Wer wir sind und was wir tun erfahren Sie hier...';  return true;"
				onmouseout="MM_swapImgRestore();  window.status='';  return true;"><img src="http://xhtmlforum.de/images/index_04.png" alt="Profil Button" name="Profil Button" width="61" height="41" border="0" id="Profil Button" />
</a>
habe gemacht, was mein Vorschreiber geposted hat (natürlich in angepasster Form), will heissen im request.js File hab ich die oben erwähnte Funktion kopiert und beide umbenannt nach "sndReqBB" und "sndReqSB", zusätzlich hab ich noch für jede Funktion separat eine output.php erstellt, jeweils mit namen "bigboxout.php" und "smallboxout.php", welche die Pfade auf die .html-Files mit dem zu ladenden Inhalt enthalten. Ich denke das ist nötig, weil ja jede output.php nur einen Verweis auf einen div-Container enthält (am Ende des PHP-Codes)...Codemässig sieht dann folgendermassen aus:

in der request.js (rot ist, was ich geändert habe)

Code:
function sndReqBB(action) { 
    http.open('get', 'bigboxout.php?action='+action); 
    http.onreadystatechange = handleResponse; 
    http.send(null); 
} 

function sndReqSB(action) { 
    http.open('get', 'smallboxout.php?action='+action); 
    http.onreadystatechange = handleResponse; 
    http.send(null); 
}

in den beiden output.php

smallboxout.php


Code:
<?php
switch($_REQUEST['action']) {
  default:
  case 'getHomeSB':
    $filename = 'txt_home/text_smallbox.html';
    break;
  case 'getProfilSB':
    $filename = 'txt_profil/text_smallbox.html';
    break;
......usw.

}
$handle = fopen($filename, 'r');
$content = fread($handle, filesize($filename));
fclose ($handle);
echo 'smallbox|'.$content;
?>

bigboxout.php


Code:
<?php
switch($_REQUEST['action']) {
  default:
  case 'getHomeBB':
    $filename = 'txt_home/text_bigbox.html';
    break;
  case 'getProfilBB':
    $filename = 'txt_profil/text_bigbox.html';
    break;
.....usw.
}
$handle = fopen($filename, 'r');
$content = fread($handle, filesize($filename));
fclose ($handle);
echo 'bigbox|'.$content;
?>

ja, das war's so in etwa mit meinem Versuch^^, nicht sehr erfolgreich und ich habe keine Ahnung, wo ich den Fehler gemacht haben könnte, höchstens mögliche Vermutungen:

1. die JS Funktion "sndReq" darf nicht umbenannt werden in "sndReqBB" oder so?? fänd ich aber komisch... --> Ausgeschlossen

2. Ich hab was in der PHP Datei vermasselt, höchstwahrscheinlich beim Eintragen der anderen div-ID's...??

3. Meine Buttons in der index.php haben irgendeine Macke in der onClick-JS-Kette


ich hoffe, jemand blickt da besser durch als ich, so nah dran und trotzdem steht da ne mauer! =/

Geändert von luckyluke (25.04.2008 um 16:11 Uhr)
Mit Zitat antworten
  #28 (permalink)  
Alt 25.04.2008, 13:35
Neuer Benutzer
neuer user
 
Registriert seit: 23.04.2008
Beiträge: 15
Graveto befindet sich auf einem aufstrebenden Ast
Standard Mir gehts genauso...

...bin genauso vorgegangen, weil ich das eigentlich alles auch sehr logisch finde. Klappt aber nicht! Sobald ich ne zweite sendReq(), rein machen geht gar nix mehr. Natürlich habe ich die sie umbenannt und auch eine entsprechende zweite output.php erstellt, usw.. Wie oben beschrieben eben!

Woran kanns liegen?

Aber gut zu wissen, dass man nicht allein vor so nem Prob steht!
Ach, ja eins kann ich nach der Rumprobiererei schonmal sagen: mit dem Namen der sendReq() hats nix zu tun. Die kann heißen wie sie will! Immerhn eine von drei vermuteten Fehlerquellen ausgeschlossen!

Grüße

Geändert von Graveto (25.04.2008 um 13:38 Uhr)
Mit Zitat antworten
  #29 (permalink)  
Alt 25.04.2008, 13:41
Erfahrener Benutzer
XHTMLforum-Kenner
 
Registriert seit: 09.07.2004
Beiträge: 1.103
cgdesign befindet sich auf einem aufstrebenden Ast
Standard

Schaut mal hier: Coder Wiki | HowTos | Inhalte mit AJAX & PHP nachladen wenn ihr mehrere Inhalte gleichzeitig laden wollt, dann müsst ihr es in eine Schleife packen.
Mit Zitat antworten
Sponsored Links
  #30 (permalink)  
Alt 25.04.2008, 16:09
Neuer Benutzer
neuer user
 
Registriert seit: 24.04.2008
Beiträge: 17
luckyluke befindet sich auf einem aufstrebenden Ast
Standard

Ui, danke für den Hinweis auf das Tutorial =), obwohl, wenn ich's mir so anschaue werd ich grad noch nicht so richtig schlau daraus, meine PHP & Javascript Kentnisse sind leider noch nicht allzu gross bzw. allzu gefestigt =), lerne das ganze erst gerade...

wo müsste ich denn jetzt bei unserem Beispiel eine Schleife einbauen (in welcher Datei schonmal? In der output.php? oder in der request.js?) und wo im Tutorial sehe ich die Schleife (welches Stück Code?)...hoffe mein "Problempartner" hat da schon tiefergehende Kenntnisse der Materie! =)
Mit Zitat antworten
Sponsored Links
Antwort

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Elemente in einem Div Container links & rechts ausrichte oliwa CSS 8 16.07.2004 15:39
Problem bei Positionierung eines <div> im Container Robse CSS 2 12.06.2004 13:43
<div> container ausrichten. IE6 u. Mozilla1.6 scan CSS 3 04.03.2004 14:16
<div> container verschwindet?! Gilbert CSS 3 30.09.2003 14:55
<div> container dynamisch vergrößern Anonymous CSS 7 27.07.2003 12:40


Alle Zeitangaben in WEZ +2. Es ist jetzt 23:16 Uhr.