Link in DIV öffnen

Fragen zum Thema HTML, JavaScript, PHP
Antworten
Benutzeravatar
Shisou
Beiträge: 7
Registriert: Sa Mär 05, 2011 10:15 am

Link in DIV öffnen

Beitrag von Shisou » Sa Nov 19, 2011 11:47 am

Nach langer Zeit brauch ich mal wieder eure Hilfe :oops: :roll: :D
Also ich will das sich die Links aus der div#navi in div#inhalt öffnen, damit nicht immer die ganze Seite neu geladen werden muss.

Habe jetzt lange im Internet gesucht und einiges gefunden, doch manche posts waren bereits mehrere Jahre alt und jetzt wollte ich mal von euch wissen welches davon überhaupt funktioniert und welches am sichersten ist. Anhand der Daten habe ich auch mal versucht einen eigenen Code zu schreiben (ganz unten).

Aus dem Internet:

- mit $_GET:

Code: Alles auswählen

<div id ="navi">
  <a href="index.php?ac=start">Start</a>
  <a href="index.php?ac=bilder">Bilder</a>
  <a href="index.php?ac=impressum">Impressum</a>
</div>

<div id ="content">
<?php
if($_GET['ac']=='start' || !$_GET['ac'])include 'start.php';
if($_GET['ac']=='bilder')include 'bilder.php';
if($_GET['ac']=='impressum')include 'impressum.php';
?>
</div>
- mit $_REQUEST:

Code: Alles auswählen

<div id="menu">
  <a href="index.php?seite=home">Home</a><br />
  <a href="index.php?seite=seite1&zwei=blubber">Seite1</a>
</div>

<div id ="content">
  <?php
    include($_REQUEST[$seite]);
  ?>
</div>

<div id="anderer_bereich">
  <?php
    include($_REQUEST[$zwei]);
  ?>
</div>
- mit switch-case:

Code: Alles auswählen

<div id="navi">
  <a href="?seite=eins">Link1</a>
  <a href="?seite=zwei">Link2</a>
</div>

<div id="inhalt">
<?php
switch($_GET["seite"] {
case "eins": include("eins.htm"); break;
case "zwei": include("zwei.php"); break;
default: echo "startseite.htm";
}
?>
</div>
Eigene Versuche:

1.
navi.inc.php

Code: Alles auswählen

<?php
  <a href=?site="Link1">Linktitel1</a>
  <a href=?site="Link2">Linktitel2</a>
switch(?site) {
  case "Link1" = "unterseite1.php"; break;
  case "Link2" = "unterseite2.php"; break;
  default "index.php";
}
?>
index.php

Code: Alles auswählen

<html>
<head>...</head>
<body>
<div id="header">...</div>
<div id="navi">
  <?php include ="navi.inc.php"; ?>
</div>
<div id ="inhalt"></div>
<div id ="fusszeile">...</div>
</body>
</html>
2.

Code: Alles auswählen

<a href ="?site=link">Link</a>
<?php
  $var=='?site'+'.php';
  include ="$var"; // oder mit: echo "$var";
?>
wenn möglich den PHP-Code durch eine der kurzen Varianten ersetzen:
  • include ="?site.php";
    include ="?site+.php";
    echo "?site.php";
    echo "?site+.php";
3.

Code: Alles auswählen

<div id="navi">
  <a href="?site=Link1">Link1</a>
  <a href="?site=Link2">Link2</a>
</div>

<div id="inhalt">
  <?php switch(?site)
    case 'Link1' include 'Link1.php'; break;
    case 'Link2' include 'Link2.php'; break;
    default include 'start.php';
  ?>
</div>
Das war alles was ich finden konnte.
Wäre es vlt. auch mit einer Datenbank und MySQL möglich und sicher?
So sieht meine HP derzeit aus: http://www.shisou.de.nu
Der Inhalt wird sich nicht großartig ändern; Text bei den Gedichten und später kommt noch eine Rubrik mit Bildern, aber derzeit halt nur die Gedichte und somit nur Text.

Ich hoffe ihr könnt mit helfen und vielen Dank schonmal für eure hilfreichen Posts. :D

Gruß: Shisou
Niemand ist perfekt ! :D
Nobody is perfect ! :D

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8859
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: Link in DIV öffnen

Beitrag von Xin » Sa Nov 19, 2011 12:13 pm

Shisou hat geschrieben:Nach langer Zeit brauch ich mal wieder eure Hilfe :oops: :roll: :D
Also ich will das sich die Links aus der div#navi in div#inhalt öffnen, damit nicht immer die ganze Seite neu geladen werden muss.
Möglichkeit 1: Nimm ein switch, das ist (in echten Programmiersprachen) schneller als if else if else if...
Auf gar keinen Fall darfst Du Daten, die von außen kommen unkontrolliert Einfluss auf Deinen Programmablauf nehmen lassen.
also sowas wie include %_GET... geht gar nicht.
Shisou hat geschrieben: Das war alles was ich finden konnte.
Wäre es vlt. auch mit einer Datenbank und MySQL möglich und sicher?
Möglich ist vieles.
Datenbankabfragen kosten aber Zeit und eine Domain .de.nu sieht nicht so aus, als stellt man Dir eine Datenbank zur Verfügung.
Schreib's selbst.

Mach ein Array mit einem Text und einem Verweis auf die php-Datei.
knownpages = array( array( "home", "home.php ),
array( "guestbook", "guestbook.php" ),
.... );
[/code]

Was im Array nicht zu finden ist, ist keine Seite, dann gibst Du eine Default-Seite aus, z.B. eine Art 404-Page.
Wenn Du es im Array findest, weißt Du welche Seite Du includen kannst.
Shisou hat geschrieben:So sieht meine HP derzeit aus: http://www.shisou.de.nu
Der Inhalt wird sich nicht großartig ändern; Text bei den Gedichten und später kommt noch eine Rubrik mit Bildern, aber derzeit halt nur die Gedichte und somit nur Text.
Gerade in der Mitte der Pubertät oder weswegen so depressive Gedichte?

Ich meine:
website hat geschrieben: Vergangenheit

Vergangenheit
Viel Einsamkeit
Nie endenwollender Leid
Kein Augenblick der Fröhlichkeit
Vergangenheit
Bist Du irgendwo auf dem Emo-Trip, oder wie?
Datt jeht doch uch andersährum:
Xin 5 Minuten Lyrik hat geschrieben: Zukunft
eine Karriere angehen
die Kinder wachsen sehen
Zeit wird so schnell vorübergehen
Zukunft
Alles eine Frage der Perspektive.

Wer nach den Sternen greifen will, muss zum Himmel sehen.
Wer auf den Boden guckt, sieht nur, was andere auf ihrem Weg verloren haben.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

Benutzeravatar
Shisou
Beiträge: 7
Registriert: Sa Mär 05, 2011 10:15 am

Re: Link in DIV öffnen

Beitrag von Shisou » Sa Nov 19, 2011 1:04 pm

Xin hat geschrieben:Datenbankabfragen kosten aber Zeit und eine Domain .de.nu sieht nicht so aus, als stellt man Dir eine Datenbank zur Verfügung.
Die Dateien liegen alle auf Ohost und dort hab ich auch zugriff auf MySQL. ^^
Xin hat geschrieben:Gerade in der Mitte der Pubertät oder weswegen so depressive Gedichte?
Nein, bin nicht in der Pupertät. Die meisten Gedichte auf meiner HP sind schon über 4 Jahre alt. :roll:

--------------------------------

Also wenn ich genauer darüber nachdenke, dann glaube ich, dass ich gerade dabei bin einen eigenen Blog zu erstellen.
Denn ein login-system soll später auch noch hinzukommen, damit ich mich nur noch einloggen muss um ein neues Gedicht rein zu stellen und um kommentare bearbeiten zu können, vlt. können sich andere dann auch registrieren und es kommt dann noch ein Bereich wie z.B. "User-Gedichte" wo dann jeder User eigene Gedichte posten kann.
Aber das steht noch in den Sternen, erstmal will ich es so haben das sich die Links im div#inhalt öffnen damit nicht immer die ganze Seite neu geladen werden muss.
Niemand ist perfekt ! :D
Nobody is perfect ! :D

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8859
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: Link in DIV öffnen

Beitrag von Xin » Sa Nov 19, 2011 1:21 pm

Shisou hat geschrieben:
Xin hat geschrieben:Datenbankabfragen kosten aber Zeit und eine Domain .de.nu sieht nicht so aus, als stellt man Dir eine Datenbank zur Verfügung.
Die Dateien liegen alle auf Ohost und dort hab ich auch zugriff auf MySQL. ^^
Was es heute schon alles für lau gibt....
Entsprechend wird allerdings auch die Qualität sein - irgendwo ist immer ein Haken.
Shisou hat geschrieben:
Xin hat geschrieben:Gerade in der Mitte der Pubertät oder weswegen so depressive Gedichte?
Nein, bin nicht in der Pupertät. Die meisten Gedichte auf meiner HP sind schon über 4 Jahre alt. :roll:
Na, da haben viele eine depressive Phase. Die Emo-"Kultur" kommt ja auch nicht von ungefähr.

Weshalb sonst so niedergeschlagen?

--------------------------------
Shisou hat geschrieben:Also wenn ich genauer darüber nachdenke, dann glaube ich, dass ich gerade dabei bin einen eigenen Blog zu erstellen.
Denn ein login-system soll später auch noch hinzukommen, damit ich mich nur noch einloggen muss um ein neues Gedicht rein zu stellen und um kommentare bearbeiten zu können, vlt. können sich andere dann auch registrieren und es kommt dann noch ein Bereich wie z.B. "User-Gedichte" wo dann jeder User eigene Gedichte posten kann.
Aber das steht noch in den Sternen, erstmal will ich es so haben das sich die Links im div#inhalt öffnen damit nicht immer die ganze Seite neu geladen werden muss.
Das klingt dann aber eher nach AJAX. Das ist kein Problem, dass Du mit PHP alleine lösen kannst.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

Benutzeravatar
Shisou
Beiträge: 7
Registriert: Sa Mär 05, 2011 10:15 am

Re: Link in DIV öffnen

Beitrag von Shisou » Sa Nov 19, 2011 2:05 pm

Xin hat geschrieben:Was es heute schon alles für lau gibt....
Entsprechend wird allerdings auch die Qualität sein - irgendwo ist immer ein Haken.
Ein Haken ist, dass eine Datei max. 3 MB groß sein darf.
Xin hat geschrieben:Na, da haben viele eine depressive Phase. Die Emo-"Kultur" kommt ja auch nicht von ungefähr.

Weshalb sonst so niedergeschlagen?
Ja früher kann ich durch aus mal die ein oder andere Phase gehabt haben.
Aber "Emo-Kultur" mit depressivität zu vermischen ist total falsch, denn jeder der Gefühle hat und fühlt ist ein Emo.
Emo = Emotional = Gefühle haben/benutzen
Aber die Menschen sind ja bekannt für ihre Wortverdreherei und deshalb denken die meisten Emo = depressive/schlecht gelaunte Menschen.

Aber kommen wir nun zurück zum eigentlichen Thema:
Xin hat geschrieben:Das klingt dann aber eher nach AJAX. Das ist kein Problem, dass Du mit PHP alleine lösen kannst.
Also eig. wollte ich schon komplett auf Javascript und Add-On bezogene Sprachen wie Java und Flash verzichten.

Wie ist das denn jetzt mit den ganzen genannten Beispielen?
Funktioniert eines davon, also z.B. das mit switch-case?
Oder vlt. sogar eines der kurzen Varianten von mir?
Oder muss man das ganz anderst machen?
Niemand ist perfekt ! :D
Nobody is perfect ! :D

Dominik
Beiträge: 381
Registriert: Mo Jul 07, 2008 9:39 pm

Re: Link in DIV öffnen

Beitrag von Dominik » Sa Nov 19, 2011 2:10 pm

Javascript/Ajax kannst schon verwenden, dieses "Addon" ist quasi dabei :lol:
Rechtschreibefehler sind gewollt und dienen der Unterhaltung

C@mper
Beiträge: 88
Registriert: Mo Nov 15, 2010 3:30 pm

Re: Link in DIV öffnen

Beitrag von C@mper » Di Nov 22, 2011 8:47 am

Also wie Xin oben schon erwähnt hat, solltest Du wirklich kein include auf $_GET durchführen.

Habe mal einen Blick in meine alten Sourcen geworfen und dabei folgendes wiedergefunden:

z.B. index.php:

Code: Alles auswählen

include ('pincl/config.php'); // einbinden der config.php
..
<div id ="inhalt">
..
include "inhalt.php";
..
</div>

die inhalt.php sieht dann so aus:

Code: Alles auswählen

if (isset($_GET['section']) AND isset($dateien[$_GET['section']])) 
{
    include $dateien[$_GET['section']];
} else {
    include $dateien['home'];
}
und in der config.php dann ein Array:

Code: Alles auswählen

$dateien = array();
$dateien['home'] 	= "home.php";
$dateien['kontakt'] 	= "kontakt.php";
$dateien['test'] 		= "test.php";
Die links im Navi verweisen dann immer auf die index.php?section=x wobei x dann in diesem Beispiel home, kontakt oder test wären.

Benutzername
Beiträge: 9
Registriert: Fr Apr 27, 2012 11:21 am

Re: Link in DIV öffnen

Beitrag von Benutzername » Fr Apr 27, 2012 11:53 am

Eine Mischung aus Ajax und Mysql Abfragen für den Text Kontent wären denke ich das Richtige. Drumherum ein Design was dich das ganze in Kategorien einfassen lässt. So wie in Standard CMS oder Webshop Systemen.




EDIT nufan: Link entfernt

Antworten