Antworten auf deine Fragen:
Neues Thema erstellen

php navigation mit include anker setzen

bibifellow

Nicht mehr ganz neu hier

Ich habe eine Navigation
Code:
 <nav>
                        <ul id="navMain">
   <li ><a href="index.php?seite=home"
   class="<?php echo ($_GET['seite'] == 'home') ? 'current': 'normal'; ?>"tabindex="1" >  ZEISEL</a></li>
                              <li ><a name="galery" href="index.php?seite=galery"
   class="<?php echo ($_GET['seite'] == 'galery') ? 'current': 'normal'; ?>"tabindex="1" >  Galerie</a></li></ul> </nav>
Und dann eine box oben auf der Website
Code:
<box>
         
          <section>
          <?php
$seite = isset($_GET['seite']) ? $_GET['seite'] : '';

switch($seite){
default:
case"home":
include("start.html");
break;

} ?>
          </section>
           </box>

und eine weiter unten ein weiteres div
Code:
        <div id="galery">
<p><a href="#galery"></a>
 
  <?php
$seite1 = isset($_GET['seite']) ? $_GET['seite'] : '';

switch($seite){
default:
case"galery":
include("bilder/gallery/1.html");
break;
case"airport":
include("bilder/gallery/2.htmp");
break;

} ?>
  </div>

Ich habe oben in der Navigation einen Namen galery vergeben und unten den Anker gesetzt.
Ich möchte das beim Klick auf Galery der Browser nach unten zum div galery geht. Aber das funktioniert nicht und ich weiß nicht warum!
 

JPS

Nicht mehr ganz neu hier

Mhhh verstehe das Chaos nicht ganz, aber versuche mich mal dran:
Wenn Du sowas z.b. am Anfang des Dokuments hast:
PHP:
<?php
$action=$_GET['action'];

$inhalt=$action.".php";

//Abfangen evlt. nicht erwünschte Experimente verhindern
if (
  substr_count($_GET['action'], '..') > 0
  OR substr_count($_GET['action'], '_dbadmin') > 0
)
  die ("Malicious parameter.");

//Abfangen von nicht existenten Links
if (file_exists($inhalt))
{$content=$inhalt;}
else
{$content="start.php";}

?>

Kannst Du dann in der Navi sowas machen:
HTML:
<li><a href="index.php?action=galery">Galery</a></li>

Und dann in deinem Div für den Inhalt:
Code:
<div id="inahlt"><?php include($content); ?></div>
 

bibifellow

Nicht mehr ganz neu hier

Das kann ich nicht nachvollziehen.
Ich habe oben in der Website eine Navigation mit einem Div box 1 darunter in dem ich ein paar Seiten include. Klappt kein Problem.
Ein Navigationspunkt dieser Navigation soll in dem zweiten Div Box 2 welche unter dem Folter ist eine externe Seite includen. Klappt auch.
Aber beim includen in Box 2 soll er auch runter springen auf die Box 2 die einen Abstand von oben hat von 1300px. Und das klappt nicht. Hoffe ich habe das gut erklärt ist halt ein bißchen schwer.:(
 

JPS

Nicht mehr ganz neu hier

Etwas hab ich noch vergessen:
Willst Du jetzt das ganze noch spezifizieren geht es über weitere Parameter, z.B:
<a href="index.php?action=galery&album=airport">Album Airport</a>

Ok - zu deinem Sprungproblem:
Da Du ja durch die PHP Var $action weißt auf welcher Seite Du bist, kannst Du das nutzen. Wobei ich das mit JS lösen würde:

Code:
<script>
var seite = <?= $_GET['action'] ?>;
function gotoAnker(anker) {
window.location= anker;
}

if (seite=="galery") {
gotoAnker('box2');
}
else ........
</script>

Mit PHP ist das nicht lösbar (lasse mich aber eines besseren belehren), da Du ja das DOM im Browser fertig haben musst um auch dorthin zu springen.
 

bibifellow

Nicht mehr ganz neu hier

Ja und warum springt er nicht nach unten. Ich habe dies

als Anleitung genommen. Gibt es mit php und meiner navi noch eine andere Möglichkeit das er beim Klicken nach untern in den div box2 springt. Das mit include klappt ja oben für die Seiten und auch in der box 2 nur springt er nicht zu diesem Punkt.
Ich habe es jetzt so geändert
Code:
<li ><a href="index.php?seite=galery=gal"
   class="<?php echo ($_GET['seite'] == 'galery') ? 'current': 'normal'; ?>"tabindex="1" >  Galerie</a></li>
es funktioniert einfach nicht. Zum Verzweifeln.
 

bibifellow

Nicht mehr ganz neu hier

Ich habe es jetzt anders gemacht habe in der Navigation
Code:
<li ><a href="#galery">Galerie</a></a></li>
eingefügt und in dem unteren div
Code:
<div id="galery">
      <ul id="gal">
   <li ><a href="index.php?seite=Galerie1"
   class="<?php echo ($_GET['seite1'] == 'gesichter') ? 'current': 'normal'; ?>"tabindex="1" >Galerie1</a></li>
                              <li ><a href="index.php?seite=Galerie2"
   class="<?php echo ($_GET['seite1'] == 'Galerie2') ? 'current': 'normal'; ?>"tabindex="1" > Galerie2</a></li>
                           

                        </ul>
                    </gal
  <section>
  <h2><a name="galery"></a></h2>
  <?php
$seite1 = isset($_GET['seite']) ? $_GET['seite'] : '';

switch($seite){
default:
case"galery":
include("Galerie1.html");
break;
case"airport":
include("Galerie2.html");
break;

} ?></section>
  </div>

Also wenn ich oben auf Galerie klicke springt er nach unten ladet die erste Galerie. Das Problem jetzt ist die 2. Navigation wenn ich auf Galerie 2 klicke springt er wieder nach oben auf die Seite. Warum bleibt er nicht im 2. Div?
 

Duddle

Posting-Frequenz: 14µHz

PHP:
<li ><a href="index.php?seite=Galerie2" class="<?php echo ($_GET['seite1'] == 'Galerie2') ? 'current': 'normal'; ?>"tabindex="1" > Galerie2</a></li>
Dieser Link geht auf das Dokument "index.php?seite=Galerie2". Mehr nicht. Da du keinen Anker im Ziel-Dokument selbst angegeben hast, springt er auch zu keinem Anker.


Duddle
 

Duddle

Posting-Frequenz: 14µHz

Du hast doch selbst auf verwiesen? Und selbst schon einen Anker korrekt verlinkt? Und in diesem Thread hier gab es einen Austausch über den korrekten Einsatz eines Ankers? Ich weiß wirklich nicht, wie die Lösung noch offensichtlicher gemacht werden kann.


Duddle
 

bibifellow

Nicht mehr ganz neu hier

Ich habe es jetzt geändert aber es funktioniert nicht
Code:
 <div id="galery"> 
      <ul id="gal">
   <li ><a href="index.php?seite=#galery" 
   class="<?php echo ($_GET['seite'] == 'Galerie1') ? 'current': 'normal'; ?>"tabindex="1" >Galerie1</a></li>
                            [CODE]  <li ><a href="index.php?seite=#galery1"
class="<?php echo ($_GET['seite'] == 'Galerie2') ? 'current': 'normal'; ?>"tabindex="1" > Galerie2</a></li>


</ul>
</gal

><section>
<h2><a name="galery"></a></h2>
<?php
$seite = isset($_GET['seite']) ? $_GET['seite'] : '';

switch($seite){
default:
case"galery":
include("Galerie1.html");
break;

} ?></section>
</div>
<div id="galery1">


<section>
<h2><a name="galery1"></a></h2>
<?php
$seite = isset($_GET['seite']) ? $_GET['seite'] : '';

switch($seite){
default:
case"galery1":
include("Galerie2.html);
break;

} ?></section>
</div>
[/CODE]
Das Springen funktioniert dann.
Das Problem mit
Code:
  <li ><a href="index.php?seite=#galery1"
wenn ich #galery1 eingebe funktioniert das Javascript der Galerie nicht mehr.Mache ich die # weg springt er nicht aber das Javascript funktioniert. Zum heulen:(:(
 

Duddle

Posting-Frequenz: 14µHz

Du scheinst an den Grundlagen zu scheitern. Wenn du HTML-Anker von GET-Parametern nicht unterscheiden kannst, weiß ich wirklich nicht, auf welcher Ebene ich ansetzen kann. Selbst wenn ich dir also die Lösung geben würde, weiß ich nicht ob du sie dann verstehen würdest.
Eine URL zeigt auf ein Dokument. GET-Parameter übergeben zusätzliche Informationen und parametrisieren so das gewünschte Dokument. Komplett unabhängig davon steht ein Anker am Ende der URL.

Nochmal: in diesem Thread hier wurde ein korrektes Beispiel gezeigt. Du musst nur hochscrollen, es lesen und verstehen.


Duddle
 

bibifellow

Nicht mehr ganz neu hier

Ich habe mich am WE mal hingesetzt und den Tipp von oben umgesetzt

Code:
<?php
$action=$_GET['action'];

$inhalt=$action.".php";

//Abfangen evlt. nicht erwünschte Experimente verhindern
if (
  substr_count($_GET['action'], '..') > 0
  OR substr_count($_GET['action'], '_dbadmin') > 0
)
  die ("Malicious parameter.");

//Abfangen von nicht existenten Links
if (file_exists($inhalt))
{$content=$inhalt;}
else
{$content="start.html";}

?>
               
<script>
var seite = <?= $_GET['action'] ?>;
function gotoAnker(anker) {
window.location= anker;
}

if (seite=="galery1") {
gotoAnker('box1');
}
else (seite=="galery2" {
    gotoAnker ('box2')
</script>               

                    <a class="open" href="#navMain">Menu</a>
         
                   
                    <nav>
                        <ul id="navMain">
       <li><a href="index.php?action=zeisel">Zeisel</a></li>
       <li><a href="index.php?action=galery">Galery</a></li>
                       
                       
                  </ul>
                  </nav>     
 
                </div>

und dann in der ersten Box
Code:
<box>
         
          <section>
       


<div id="inhalt"><?php include($content); ?></div>
          </section>
           </box>


und dann in der ersten Galerie 1400 px von oben und darunter Galerie 2
Code:
<div id="galery1">
     
                   
 <div id="box1">
<h2><a name="galery1" href="#galery1">Galerie 1</a></h2>
<h2><a name="galery2" href="#galery2">Galerie 2</a></h2>

  <div id="box11"><?php include($content); ?></div>
 </div>



<div id="box2">
<h2><a name="galery2" href="#galery2">Galerie 2</a></h2>

<h2><a name="galery1" href="#galery1">Galerie 1</a></h2>
  <div id="box22"><?php include($content); ?></div>
 </div>
  </div>

Mit den Ankern springt er auch gut. Er ladet aber immer nur die start.php
Ist ja auch klar der $content ist ja auch immer start.php
könnte ich dann
Code:
 else {$content1="galerie1.html";}
usw hinzufügen
 

JPS

Nicht mehr ganz neu hier

Wo Du aufpassen musst, er schaut nach ob dieser File existiert und include ihn, ansonsten nimmt er die Standard Startseite. Wenn Du jetzt z.b. index.php?action=galery1 hast, macht er daraus galery1.php schaut nach ob es ihn gibt und inlcluden die Datei. Funktioniert aber nicht wenn es nur galery1.html gibt.
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Flatrate für Tutorials, Assets, Vorlagen

Statistik des Forums

Themen
118.564
Beiträge
1.538.064
Mitglieder
67.487
Neuestes Mitglied
MichaelSEivy
Oben