• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

code aus externer datei

Status
Für weitere Antworten geschlossen.

BigSanch

Neues Mitglied
hallo an alle und danke an alle die posten schon mal im vorraus!

ich poste dieses thema, gleich im vorraus, in html und php, weil es wahrscheinlich mehrere lösungen gibt, also sorry für den doppelpost!

ich hoffe ich kann mich so gut ausdrücken, daß mich jeder versteht :-)

ich habe folgendes problem:

ich habe eine externe datei (header.php), in der ich den kompletten html kocp mit body, ein script und das onload, das ich für das script laden muß. weiters habe ich schon, damit ich das nicht in jeder seite neu schreiben muß, formate schon vordefiniert, wie folgt:
<html>
<head>
....
<script src:"...."></script>
</head>
<body bg... onload=".......()">
<div id="......"> (spezielle text formatierung und damit ich das nicht in jeder seite neu eingeben muß, habe ich das im header drin. das geht auch, so wie ich will.)
im footer habe ich natürlich alle tags geschlossen:
</div></body>.......
in der eigendlichen seite lade ich diesen header mit php:
<? include....>
dann muß ich nur noch mein zeugs reinpacken und den text eingeben.
das alles geht auch.
wenn ich jetzt aber in der seite mehrere daten verabeiten will, wie zum beispiel eine adress seite (kontakt.html) und in dieser noch ein emailformular, aufrufbar mit einem anker (kontakt.html#email), dann muß ich den div tag schließen aus dem header (</div>), geht auch.

wenn ich jetzt aber weiter unten in der seite diesen tag wieder brauche, kann ich das irgendwie lösen, daß ich den tag kurzeitig schliese und "so wie er im header" steht, ohne alles wieder eingeben zu müssen wieder zu aktivieren?

geht das irgendwie, vielleicht mit html oder evtl php, daß ich den header ein und ausschalten kann, vielleicht?

danke
 
falls du in php zumindest die Grundlagen kennst, würde ich dir empfehlen mit einer Template Engine zu arbeiten.

:arrow: Smarty : Template Engine

Zudem solltest du die Styleangaben in eine externe *.CSS schreiben und dann zum beispiel über klassen benutzen, dann kannst du ganz einfach über z.b.
Code:
<div class="meineKlasse">bla</div>
was anderes
<div class="meineKlasse">bla</div>
benutzen.
 
danke für deine hilfe

aber das ist nicht ganz das was mir weiterhilft:

meine definition vom tag <div> bassiert nicht auf einfachen css codes, die ich in einer css definieren kann, ich habe einen gesamten javascript, der über den tag <div id...> meine gewünschten effeckte aktiviert.

wenn ich den effekt mit <div id...> aktiviere, kann ich ihn schonmit </div> beenden, was anderes zwischen rein schreiben, aber durch den script, lässt sich der tag (in der selben seite) nicht ein zweites mal aufrufen, da dann das script im explorer eine fehlermeldung hervorruft, warum auch immer.

ich bräuchte also irgendwie die möglichkeit, den tag mit einem code (ob nun html, java oder php) zu schliessen und in der selben seite wieder zu aktivieren, ohne dass der javascript im eigenen, durch das erneute aufrufen, einen fehler verursacht.

wenn du möchtest, kann ich dir auch die datei zu senden oder so, damit du sie dir mal anschauen kannst, um dir ein bild zu machen, was ich will.

danke
 
ähm, irgendwo hast du nen denkfehler, versuch mal nicht dein problem zu beschreiben sondern das was du erreichen willst.
 
sorry, denkfehler, kann sein, also:

ich habe ein script in einem header, zwecks layoutformatierungen, das lade ich in der html oder php seite integriere mit
<div id"...">blabla der gesamten seite</div>
ich will aber in einzelnen seiten ZWISCHENDRIN etwas ohne diese formatierung in der seite haben also etwa so
<div id"...">blabla EXTRATEIL (ohne formatierung) rest der seite</div>
würde ich normal so machen
<div id"...">blabla(1.tag)</div> EXTRATEIL <div id"...">rest der seite(2.tag)</div>
so, da hinter der id von dem tag ein script läuft, kann ich den tag nicht beenden und ein zweites mal aufrufen, ich weiß nicht wieso, aber wenn ich den tag zweimal in einer gleichen seite afrufe gibt es eine fehlermeldung und weder die formatierung im ersten tag noch die im zweiten funzt

ich will aber den extrateil OHNE formatierung!
habe es so versucht, daß ich wie oben statt EXTRATEIL einfach eine externe seite einbinde OHNE formatierungen, ist sie aber eingebunden, egal ob mit iframe oder php include übernimmt sie automatisch die formatierung der eigendlichen seite, ich verzweifle
 
du kannst ja statt den Tag zu beenden einfach in einem eingebetteten Tag die Formatierungen beenden, also :

<div id="...">
(1. Teil, z.b. Farbe rot)
<div id="...">
(Normaler Teil, also Farbe wieder schwarz und so, einfach oben festlegen)
musst halt dann alles was du gesetzt hast wieder aufs normale setzen.
</div>
(2.Teil)
</div>
 
<div id"...">blabla EXTRATEIL (ohne formatierung) rest der seite</div>
würde ich normal so machen
<div id"...">blabla(1.tag)</div> EXTRATEIL <div id"...">rest der seite(2.tag)</div>

Benutz einfach statt id="" class="" und änder es dementsprechend im CSS-Code
Im JavaScript musst du dann natürlich auch ändern, dass es mit der Klasse läuft.

Ist kein eigenes JavaScript oder? sonst müsstest du eigtl wissen wie man das ändert.
 
@maxi
danke, sorry beiom nächsten mal :-)​

@frank
danke! also, das script habe ich selber geschrieben unter vorlage einiger anderen, ich wollte damit eigendlich nur in einer seite (keine angst, wo es auch reinpasst) die formatierung grundlegend änder, wäre auch ein netter effekt gewesen (z.b. schrift in bilder, gesamte wörte verformt und so weiter), aber egal​

egal ob ich nun id oder class nehme, wenn ich mit div die id (aslo auch mit class) zweimal auslese in der seite, gibt es eine fehlermeldung, daß es NULL oder KEIN OBJEKT ist, also ist es egal wie ich es ausführe es geht nicht​

@acidmat
danke! aber da das gleiche problem,​

<div id="...">(1. Teil, z.b. Farbe rot)​

<div id="...">(Normaler Teil, .........)</div>​

(2.Teil)</div>​

geht aus dem grund nicht, weil ich den ersten tag beenden müsste, da sonst der mittlere tag gar nicht funtzt weil das erste laufende tag dann den code <div> gar nicht als code erkennt und als schrift oder bilder, dementsprechend was ich gerdae laufen habe, ausgibt.​

Beende ich den ersten tag, kann ich ihn nicht mehr öffnen, sonst wieder fehlermeldung, daß die aktive id NULL oder KEIN OBJEKT ist.​
egal danke an alle, ich finde keine lösung, wäre ein netter effekt gewesen, aber ich lass es einfach
 
du musst den ersten Tag nicht beenden - eben wie ich geschrieben habe, den lässt du einfach offen. ist zwar sicher nicht die beste lösung, aber war mal so eine idee, je nachdem wie aufwändig dein CSS ist.

CSS nimmt immer das was am nächsten beim Objekt steht, also überschreibt es die styles aus dem ersten div einfach, wenn du sie im 2. div angiebst.
mfg
 
egal ob ich nun id oder class nehme, wenn ich mit div die id (aslo auch mit class) zweimal auslese in der seite, gibt es eine fehlermeldung, daß es NULL oder KEIN OBJEKT ist, also ist es egal wie ich es ausführe es geht nicht

Warum schreibst du dein JavaScript nicht einfach so, dass es funktioniert?
 
hi


du musst den ersten Tag nicht beenden - eben wie ich geschrieben habe, den lässt du einfach offen. ist zwar sicher nicht die beste lösung, aber war mal so eine idee, je nachdem wie aufwändig dein CSS ist.
das problem ist, daß innerhalb des tags alles als text oder bilder ausgegeben wird, auch das zeichen < wird konvertiert, also ist es mir nicht möglich einen code innerhalb des tags zu schreiben, wie zum beispiel <br> oder <script>​

das wird alles als text oder bild wiedergegeben​

Warum schreibst du dein JavaScript nicht einfach so, dass es funktioniert?
ich probier schon lange codes selber zusammen zu schnipseln, und das funtzt bis dato auch gut, aber bei dem bin ich wohl zu doof.​

ich glaube aber nicht daß es am script liegt, denn das funtzt sehr gut, ob nun mit id oder class, nur wie oben geschrieben, gibt er alles innerhalb des tags als bild oder text wieder.​

ich weiß auch nicht was ich im script ändern sollte, daß das script weiß wann ich einen code oder nur einen text eingebe, denn auch in einem text kann mal ein < vorkommen.​
ich glaub ich lass dassonst sitz ich nach weihnachten immer noch an der seite, :-) bin glaub zu doof dafür :-) aber danke euch trotzdem
 
kommt der Text, bei dem "<" und so ersetzt werden sollen aus einer Datenbank ?
wenn ja, kannst du ja das ersetzten aus dem css rausnehmen und einfach die php ausgabe noch mit htmlentities() versehen, dann sind die "<" im Text auch weg bzw. zu Text geworden und kannst trotzdem manuell coden.
 
danke danke danke

das war ein guter gedankenanstoß der gefehlt hat
kommt der Text, bei dem "<" und so ersetzt werden sollen aus einer Datenbank ?
nein, nur zwei passagen aus det txt datei
(aber guter denkanstoß, im notfall werd ich einfach alles in datenbanken setzen)

einfach die php ausgabe noch mit htmlentities() versehen,
in dem fall versuche ich einfach die komplette dateien in php echo auszugeben, und in denen passagen wo mein zwischenteil ist, versuche ich die zeichen zu ersetzen und einfach andere codes zu benutzen wie statt <br> ein \n, das müsste doch auch gehen, das probier ich mal
 
\n ersetzt das <br /> aber nicht, außer du lässt über den string noch die funktion nl2br($string) - macht aus allen \n ein <br>.
 
ich hab dein problem immernoch nicht wirklich verstanden, es scheint so absurd für mich zu sein, dass ich es mir nicht vorstellen kann :roll:
 
@acidmat
\n ersetzt das <br /> aber nicht, außer du lässt über den string noch die funktion nl2br($string) - macht aus allen \n ein <br>.

das weiß ich, trotzdem danke für deine guten tipps! nur geht das alles net wirklich

@freak
ich hab dein problem immernoch nicht wirklich verstanden, es scheint so absurd für mich zu sein, dass ich es mir nicht vorstellen kann

ok, ich werds zwar lassen, weil ich da echt nicht mehr weiterkomm, und ich will ja auch irgendwann fertig werden, ich probier nebenher weiter dran rum.
aber zum verständnis versuch ichs gern nochmal und vielleicht (hoffentlich nervts keinen viel zu lesen) ausführlicher:


Also ich habe eine script datei (code.js) in der ich mein design bestimme. (zb lasse ich die schrift in bilder wandeln (das passt zur seite einfach)) darin enthalten ist
Code:
...content.innerHTML = inStr;...
, was ich in der html dann mit
Code:
...<div id="content">
wieder ausgeben lasse. somit ist das layout fertig, und sieht so aus:
(\n nur wegen zeilen umbrüche, dort hat er keinen zeilenumbruch gemacht)
HTML:
<html>\n
<head>......<script src="code.js"></script>......</head>\n
<body>\n
     <div id="content">
          text bla bla bla text
     </div>\n
</body>
wenn ich jetzt aber zum beispiel folgendes will:
HTML:
<html>\n
<head>......<script src="code.js"></script>......</head>\n
<body>\
     <div id="content">
          text bla bla...
          <? include ('counter.php') ?> oder
          <font class="normal">bla</font>oder
          <script>iregendeinefunc()</script>
          ....bla text
     </div>\n
</body>
, dann nimmt er den teil
Code:
          <? include ('counter.php') ?> oder
          <font class="normal">bla</font>oder
          <script>iregendeinefunc()</script>
nicht an, sondern git ihn als solches schriftlich aus!

wenn ich das aber wie folgt regle (wäre logisch):
HTML:
<html>\n
<head>......<script src="code.js"></script>......</head>\n
<body>\
     <div id="content">
          text bla bla...
     </div>\n
          <? include ('counter.php') ?> oder
          <font class="normal">bla</font>oder
          <script>iregendeinefunc()</script>\n
     <div id="content">
          ....bla text
     </div>\n
</body>
, dann nimmt er das nicht an, sonder bring fehler, daß content null oder kein objekt ist. da stört sich das script wahrscheinlich, da es zwei mal geladen wird.
dachte mir, kopier das script in code2.js, änder content ind content2 und lade das zweite <div> mit <div id="content2">, aber wenn ich das ein paar mal mach pro seite hab ich dann ja hunderte code dateien.

also dachte ich mir frag mal ob es eine andere lösung gibt

ich hoffe jetzt wars verständlicher :-)
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben