Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Garzec

Alter Hase

  • »Garzec« ist der Autor dieses Themas

Beiträge: 693

Wohnort: Gießen

  • Private Nachricht senden

1

05.09.2017, 14:35

HTML Header Element mit unterschiedlichem Inhalt mit PHP neu zusammensetzen

Hallo,
ich lese mich grade planlos in PHP ein und möchte erstmal meine HTML Dateien kürzen. Auf jeder HTML Seite, also zB. Login, Profilseite etc. habe ich einen Footer

Quellcode

1
2
3
4
5
6
7
<div class="ribbon" id="footer">
  <div>
    <a class="link" href="https://www.google.de">Link 1</a>
    <a class="link" href="https://www.google.de">Link 2</a>
    <a class="link" href="https://www.google.de">Link 3</a>
  </div>
</div>


Also habe ich eine PHP Datei angelegt, die Zeilen dort reingepackt, meine ursprüngliche HTML Datei in .php abgeändert und dort geschrieben

Quellcode

1
<?php include ("Footer.php"); ?>


, damit sollte dann der Footer immer wieder erzeugt werden.

Nun habe ich auch einen Header, der aber immer wieder seinen Inhalt ändert. Also unterschiedliche Buttons beinhaltet. Hier mal ein Fiddle dazu

https://jsfiddle.net/kftmjsv0/

Nun ist meine Frage, ob es Sinn macht, den Header auszulagern und "irgendwie" die Buttons jedes mal anzuhängen. Zb mit Javascript erzeugen, Events anhängen und an den Header anhängen. Aber dann kann ich es auch gleich einfach in der HTML Datei so stehen lassen, wie es momentan ist. Es gibt also keine Möglichkeit zu schreiben

Quellcode

1
<?php include ("Header.php"); ?> // Und pack in einen Div des Headers noch einen Button mit einem Klickevent dazu, vielleicht dazu noch zwei Links usw. 


Ich schätze mal nein, aber möglicherweise geht es ja doch recht simpel.

Wenn nicht habe ich halt Pech gehabt und muss immer wieder dieses Gerüst schreiben

Quellcode

1
2
3
4
5
        <div class="ribbon" id="header">
            <div>
                <!-- Unterschiedlicher Inhalt -->
            </div>
        </div>

Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

2

05.09.2017, 15:29

Javascript ist ja nun Clientseitig. PHP läuft auf dem Server. Dein PHP Skript kann gucken welche Headerversion benötigt wird und diese einbinden. Geht das, aus welchen Gründen auch immer, nicht auf dem Server so kannst du Javascript benutzen. So wie sich das für mich aber anhört möchtest du die Buttons oben austauschen, je nachdem ob der Benutzer eingeloggt ist oder nicht. Das weißt du ja schon auf dem Server. Werte da die Daten aus und bastel die passende Seite zusammen welche du dann zurück schickst.
„Es ist doch so. Zwei und zwei macht irgendwas, und vier und vier macht irgendwas. Leider nicht dasselbe, dann wär's leicht.
Das ist aber auch schon höhere Mathematik.“

Garzec

Alter Hase

  • »Garzec« ist der Autor dieses Themas

Beiträge: 693

Wohnort: Gießen

  • Private Nachricht senden

3

05.09.2017, 17:39

Ne, das Problem ist eigentlich viel simpler. Also es geht gar nicht darum, ob man eingeloggt ist oder nicht. Ich habe einfach nur verschiedene Seiten und auf jeder Seite liegen im Header-Element andere Buttons mit anderen Funktionen dahinter.

Die Frage war eigentlich nur, ob man sich den Header schon beim PHP zusammenbauen lassen kann, sodass ich den Code nur 1x schreiben muss. Aber ich denke, es würde keinen Unterschied machen, weil

Quellcode

1
2
3
4
5
        <div class="ribbon" id="header">
            <div>
                <!-- Unterschiedlicher Inhalt -->
            </div>
        </div>


ist schon kurz genug und dort werden maximal 3 Buttons liegen.

Psyco001

Frischling

Beiträge: 54

Wohnort: Berlin

  • Private Nachricht senden

4

05.09.2017, 18:57

...
Die Frage war eigentlich nur, ob man sich den Header schon beim PHP zusammenbauen lassen kann,...

ja das geht und dafür ist PHP auch da: http://php.net/manual/de/control-structures.elseif.php
Das einzige was du machen musst wenn du HTML tags da mit ausgibst ist das du die Anführungszeichen escapen musst.

Quellcode

1
2
3
4
5
//bsp. escaped:
echo "<div class=\"ribbon\" id=\"header\">";

//bsp. ohne escapen
echo '<div class="ribbon" id="header">';

Nerd

Frischling

Beiträge: 3

Wohnort: Schweit

Beruf: Software Entwickler

  • Private Nachricht senden

5

05.09.2017, 18:59

Du packst deinen <div> für den Header in ein eigenes Php Script. Danach schreibst du eine Bedinung die festlegt, wie, was angezeigt wird.
Falls du das MVC Muster verwendest würde dein Controller diesen Wert in deinem Script setzen. Stichwort Php Magic Functions.

Hier noch ein kleines Beispiel:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<div class="ribbon" id="header">
  <div>
    <?php 
      $bedinungsWert // dieser wert wird vom Controller oder von wo auch immer gesetzt
      if( $bedinungsWert == 0)
        {?>
         <!-- Content 1 -->
        <?php } 
      if( $bedinungsWert == 1)
       { ?>
        <!-- Content 2 -->
       <?php } ?>
  </div>
</div>



Ich hoffe ich konnte helfen.

Grüsse Nerd

Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von »Nerd« (05.09.2017, 19:30)


Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

6

05.09.2017, 19:34

Ne, das Problem ist eigentlich viel simpler.

Ob du die Anzeige der Inhalte davon abhängig machst ob der Benutzer eingeloggt ist oder nicht, oder auf welcher Unterseite er sich befindet ist erst mal relativ egal. Ich vermute du suchst so etwas.
„Es ist doch so. Zwei und zwei macht irgendwas, und vier und vier macht irgendwas. Leider nicht dasselbe, dann wär's leicht.
Das ist aber auch schon höhere Mathematik.“

Garzec

Alter Hase

  • »Garzec« ist der Autor dieses Themas

Beiträge: 693

Wohnort: Gießen

  • Private Nachricht senden

7

05.09.2017, 21:11

Danke erstmal für die ganzen Antworten, ich werde mir mal alle anschauen :thumbup:

Werbeanzeige