Tab Control

kosovafan

Erfahrenes Mitglied
Hallo,

gibt es eine Möglichkeit Tab Navigation mit PHP umzusetzen? Hat hier jemand Empfehlungen? Ich habe das mit Javascript umgesetzt bekommen, jedoch ist Java bei manch einen Surfer abgeschaltet, so das diese ausgesperrt wären. Ist nicht gerade eine freundliche Website wie ich finde.

Würde mich freuen.


MFG
Silvio
 
Es ist auf ganz verschiedene Arte umsetzbar.
Wennd u auf Javascript verzichten willst, dann geht auch die Ajax-Technologie nicht. Ergo muss dann die Seite für jeden Tab neu geladen werden.
 
Hallo,

ich habe mir jetzt mal eine Seite mit einem normalen Menü gebaut. Das hat zwar wieder diese IDs, keine Ahnung wie man das sonst setzen soll, aber das funktioniert zumindest schon einmal.

Natürlich sieht das mit den Java schöner aus, gibt es den eine Möglichkeit mit PHP zu checken ob beim Benutzer Java aktiv ist -> dann einfach die Seite normal abarbeiten, wenn nicht soll das andere File geladen werden. Ist eine Möglichkeit das Design aufzuwerten und die Benutzerfreundlichkeit nicht zu vernachlässigen.

MFG
Silvio
 
Ich habe das mit Javascript umgesetzt bekommen, jedoch ist Java bei manch einen Surfer abgeschaltet
Wenn Java inaktiv ist, dann macht das dem Javascript nichts ,)

Aber es gibt von vielerlei Javascript Frameworks auch schon Lösungen die ebenfalls funktionieren wenn Javascript inaktiv ist. Meist Funktionerieren die durch overflow:hidden in Verbindung mit HTML Ankern. Vielleicht wirst du bei einem davon Fündig.

Ansonsten musst du eben mit Url-Parametern arbeiten wie "&tab=2" und abhängig davon beim Seiten generieren Styles setzen.


Edit:
Man kann eine Javascriptdatei mit <script src="javascript_aktiv.php"> laden, cookies setzen, oder ägnliches. Aber beim ersten Laden einer Seite ist dies alles praltisch unmöglch.

Meist arbeitet man allerdings eher mit <noscript> tags um Zusätzliche HTML Tags für die nicht Javascript Version einzubinden. Sonst muss eben das Stylesheet seinen rest tun, das alles gleich aussieht.
 
Zuletzt bearbeitet:
Hallo,

mich stört die PHP Lösung jetzt nicht unbedingt, nur das FlyOut, FlyIn ist schon eine schöne Sache und die Domain (z.b. tabs.html) bleibt erhalten. Mit PHP endet die Domain wieder mit den IDs, was sicher ein Link ist, aber tabs.html ist angenehmer zu merken als tabs.html?id=1. Vom Design her sehen beide gleich aus, außer den Fly Effekten.

MFG
Silvio
 
Hallo,

ich denke ich bleibe besser bei einer PHP Ausgabe, den ohne Java sieht das Tab grausig aus.
Ich habe das jetzt soweit das man bei Aufruf der tab.html eine Übersicht über den Sinn der Tabseite bekommt. Wenn man auf einen Link drückt, erscheint der neue Text unter denen der tab.html. Ist es möglich das man diesen Text ausblenden kann, oder ist das auch nur mit Java möglich?

PHP:
// Text der tab.html
<?php
error_reporting(E_ALL);
ini_set("display_errors", 1);
require_once ("inc/db/db.html");

// Load the Article from Database
$query = $db->prepare("SELECT id, title, blockquote, description FROM `content` WHERE id=5");
if (!$query) {die("Execute query error, because: " . $db->errorInfo());}
$query->execute();

// When statement is ok, we imaging the article
while ($row = $query->fetch(PDO :: FETCH_ASSOC)) {
    echo "\n<h1> " . (htmlspecialchars($row['title'], ENT_QUOTES, "UTF-8")) . " </h1>\n";
    echo "\n<blockquote><p>" . (htmlspecialchars($row['blockquote'], ENT_QUOTES, "UTF-8")) . "</p></blockquote>\n";
    echo "\n" . html_entity_decode($row['description'], ENT_QUOTES, "UTF-8") . "\n";
    echo "\n<p><a href=\"/fundi/strategien.html\" title=\"Zurück zu den Strategien\">Zurück</a></p>\n";
    }
?>

Direkt darunter, also in einer Datei folgt die Anweisung für die entsprechenden Links.

PHP:
<?php
error_reporting(E_ALL);
ini_set("display_errors", 1);
require_once ("inc/db/db.html");
$id = ((!empty ($_GET['id'])) ? $_GET['id'] : '');
$error = "";
// Check id is given and is a number
if (!isset ($_GET['id']) OR !is_numeric($_GET['id'])) {
     $error = "<h1>Bitte nutzen Sie Links von der Homepage!</h1>";
}
else {

// Check the Article is in Database
     $result = $db->query("SELECT id FROM `stockstrategy` WHERE id=" . (int) $id);
     $result->execute(array("%$_GET[id]%"));
     $rows = $result->fetchColumn();

// Now we print the result of question
     if (!$rows)
          $error = "<h1>Der gewünschte Artikel ist nicht vorhanden!</h1>";
     if ($error != '')
          echo $error;
     else {

// Article will load from Database
// SQL Statements for Article
          $query = $db->prepare("SELECT id, title, blockquote, description FROM `content` WHERE id=" . (int) $id);
          if (!$query) {
               die("Execute query error, because: " . $db->errorInfo());
          }
          $query->execute();

// When statement is ok, we imaging the article
          while ($row = $query->fetch(PDO :: FETCH_ASSOC)) {
               echo "\n<h1> " . (htmlspecialchars($row['title'], ENT_QUOTES, "UTF-8")) . " </h1>\n";
               echo "\n<blockquote><p>" . (htmlspecialchars($row['blockquote'], ENT_QUOTES, "UTF-8")) . "</p></blockquote>\n";
               echo "\n" . html_entity_decode($row['description'], ENT_QUOTES, "UTF-8") . "\n";
               echo "\n<p><a href=\"/fundi/strategien.html\" title=\"Zurück zu den Strategien\">Zurück</a></p>\n";
          }
     }
}
$row = null;
$query = null;
$db = null;
?>


Gruß
Silvio
 
Zurück