kostenloser Webspace werbefrei: lima-city


PHP/JS Instand Load - Link Problem

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    yomifrog

    yomifrog hat kostenlosen Webspace.

    Hallo,

    ich bin dabei an meiner Seite zu basteln. Mir ist jedoch nachdem ich schon einiges geändert habe etwas aufgefallen wo mir nichts mehr zu einfällt. Vielleicht hat jemand eine Idee:

    http://www.yomifrog.lima-city.de/test/

    Zunächst ist das Augenmerk auf die Navigation (links) zu legen, klickt man auf einen Menüpunkt so wird gleich dazu der Content geladen und das Menü klappt sich auf für weitere Unterpunkte. Im Content-Bereich der geladen wurde befinden sich die entsprechenden Unterpunkte als "Textmarken" verlinkt. Soweit zur Erklärung der Funktion (des Scripts).
    Problem: Nun ist es so, man erkennt es gut an der URL, egal welchen Link in der Navigation geklickt wird, es erscheint kein direkter Link zu einem Menüpunkt. Im Menü selber funktioniert das super, aber auch nur dort, weil dort das Instand Script arbeitet.
    Das ist ein großes Problem, da innerhalb des Dokuments Links sind, die auf einen anderen Menüpunkt führen sollen. In der alten Version klappte das natürlich noch, denn dort gab es das Script nicht. Ich möchte also es irgendwie möglich machen, dass ich jeden Menüpunkt durch eine URL erreichen kann und trotzdem das Instand-Script erhalten bleibt.

    Hier das Script:

    Auszug aus der index.php (wird im Menü auf einen Punkt geklickt, wird der entsprechende Content aus einer Datei geladen.)
    <div id="inhalt">
    <?php
    $kapitel1 = file_get_contents("content_1.php");
    echo $kapitel1;
    ?>
    </div>


    Beispielmenüpunkt:
    <li name="Kapitel1"><a><img src="sub/pfeil-rot.gif"  alt="" /> <strong>Einleitung</strong></a>
    				<ul>
    					<li name="Kapitel1"><a href="#1">&bull; Einleitung</a></li>
    				</ul>
    			</li>


    Das steht im Header:
    <script type="text/javascript">
    jQuery(document).ready(function() {
      $('#menu li').click(function() { // reagiert bei Klick auf irgendeinen Menüpunkt
        var inhalt = $(this).attr('name'); // gibt den String des Attributs zurück
        $.ajax({
          url: "content.php",
          data: "clicked="+inhalt,
          success: function(content){
            $('#inhalt').html(content); // überschreibt den alten Inhalt mit dem neuen
          }
        });
      });
    });
    </script>


    Das steht in der wichtigen content.php
    <?php
    
    if (isset($_GET['clicked'])){ 
      switch($_GET['clicked']){ 
        case 'Kapitel1': 
          $datei = file_get_contents("content_1.php");
    	  echo $datei;
          break;
        case 'Kapitel2': 
          $datei = file_get_contents("content_2.php");
    	  echo $datei;
          break; 
        case 'Kapitel3': 
          $datei = file_get_contents("content_3.php");
    	  echo $datei;
          break; 
        case 'Kapitel4': 
          $datei = file_get_contents("content_4.php");
    	  echo $datei;
          break;
    	case 'Kapitel5': 
          $datei = file_get_contents("content_5.php");
    	  echo $datei;
          break; 
        case 'Kapitel6': 
          $datei = file_get_contents("content_6.php");
    	  echo $datei;
          break; 
        case 'Kapitel7': 
          $datei = file_get_contents("content_7.php");
    	  echo $datei;
          break; 
    	case 'Kapitel8': 
          $datei = file_get_contents("content_8.php");
    	  echo $datei;
          break; 
        case 'Kapitel9': 
          $datei = file_get_contents("content_9.php");
    	  echo $datei;
          break; 
        case 'Kapitel10': 
          $datei = file_get_contents("content_10.php");
    	  echo $datei;
          break;
    	case 'Kapitel11': 
          $datei = file_get_contents("content_11.php");
    	  echo $datei;
          break;
      } 
    }  
    
    ?>

    Weiß jemand eine Lösung? (Am besten natürlich mit wenig Aufwand).
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. yomifrog schrieb:
    Zunächst ist das Augenmerk auf die Navigation (links) zu legen, klickt man auf einen Menüpunkt so wird gleich dazu der Content geladen und das Menü klappt sich auf für weitere Unterpunkte.

    Erster Kritikpunkt, unabhängig von deiner Frage:
    Mit jedem Klick klappt ein weiterer Menüpunkt auf. Das wird auf Dauer unübersichtlich. Sinnvoll wäre es, wenn beim Öffnen eines Unterpunktes alle anderen gerade geöffneten Untermenüs geschlossen würden.


    Im Content-Bereich der geladen wurde befinden sich die entsprechenden Unterpunkte als "Textmarken" verlinkt. Soweit zur Erklärung der Funktion (des Scripts).
    Problem: Nun ist es so, man erkennt es gut an der URL, egal welchen Link in der Navigation geklickt wird, es erscheint kein direkter Link zu einem Menüpunkt. Im Menü selber funktioniert das super, aber auch nur dort, weil dort das Instand Script arbeitet.

    Wie denn auch? Du lädst die Inhalte per file_get_contents() nach. Für den Browser ändert sich da nichts, dementsprechend hat er auch weder Veranlassung noch Möglichkeit, eine neue URL zu zeigen.

    Das ist ein großes Problem, da innerhalb des Dokuments Links sind, die auf einen anderen Menüpunkt führen sollen. In der alten Version klappte das natürlich noch, denn dort gab es das Script nicht. Ich möchte also es irgendwie möglich machen, dass ich jeden Menüpunkt durch eine URL erreichen kann und trotzdem das Instand-Script erhalten bleibt.

    Deine kleine Jquery-Funktion ist darauf programmiert, auf jeden Link in gleicher Art zu reagieren. Sie kann gar nicht anders. :wink:
    Da wirst Du die Funktion umschreiben müssen.

    Weiß jemand eine Lösung? (Am besten natürlich mit wenig Aufwand).

    Was ist wichtiger, der Aufwand, oder der Erfolg?

    In der jetzigen Form ist der Seitenwechsel nicht brauchbar.
    1. geht ohne Javascript überhaupt nichts
    2. Kann man nur die Startseite bookmarken, Inhalte sind nicht direkt erreichbar.
    3. Werden auch Suchmaschinen deine Inhalte nicht finden.

    Meine Empfehlung:
    Setze Jquery dort ein, wo es sinnvoll ist (Was Du dort machst, gehört nicht zu den sinnvollen Anwendungen) und baue deine Seitenstruktur in üblicher Weise auf.
    Dafür wirst Du leider dein komplettes Konzept überarbeiten müssen.
    Ein Menü wie das deine, läßt sich auch mit purem CSS erreichen. Damit wäre schon mal eine Abhängigkeit von Javascript beseitigt.
    Wenn Du die Inhalte dann seitenweise in eine Datenbank packst und die einzelnen Seiten mit Standardlinks aufrufst, ist auch das Problem der nicht wechselnden URL erledigt.

    Klar, das ist Arbeit, aber einmalig. Deine User und die Suchmaschinen werden es dir danken.
    Kleiner Tipp noch am Rande: Solltest Du Graphiken, Kartenbilder oder Ähnliches vom Spiel auf deiner Seite verwenden wollen, hol dir vorher (!) eine Genehmigung. Konami ist da ziemlich empfindlich.

    Nachtrag: Solange der Validator Fehler und Warnungen ausspuckt, solltest Du eventuell auf die Einblendung der Logos vom W3C verzichten. :wink:

    FF


    Beitrag zuletzt geändert: 9.1.2012 1:02:44 von fatfreddy
  4. Autor dieses Themas

    yomifrog

    yomifrog hat kostenlosen Webspace.

    fatfreddy schrieb:
    Erster Kritikpunkt, unabhängig von deiner Frage:
    Mit jedem Klick klappt ein weiterer Menüpunkt auf. Das wird auf Dauer unübersichtlich. Sinnvoll wäre es, wenn beim Öffnen eines Unterpunktes alle anderen gerade geöffneten Untermenüs geschlossen würden.

    Genau deswegen soll das Script genutzt werden, damit das Menü ausgeklappt bleibt.

    Jeder soll selber entscheiden, wann das Menü geklappt wird und wann nicht.

    Die User befürworten das und daher habe ich versucht das jetzt umzusetzen.

    Was ist wichtiger, der Aufwand, oder der Erfolg?

    Beides. Ist der Aufwand zu groß fällt der Erfolg im Verhältnis dazu zu gering aus.

    In der jetzigen Form ist der Seitenwechsel nicht brauchbar.
    1. geht ohne Javascript überhaupt nichts
    2. Kann man nur die Startseite bookmarken, Inhalte sind nicht direkt erreichbar.
    3. Werden auch Suchmaschinen deine Inhalte nicht finden.

    1. Was ist das Problem am JavaScript? Es funktioniert einwandfrei, wer es abschaltet hat selber schuld, wenn dann sein Internet nur noch halb so viel kann.
    2. Richtig und das brauchst du mir nicht sagen.^^ Ich fragte hier nur nach einer Möglichkeit, ob es vielleicht einen Weg gibt das Script weiterhin zu nutzen und trotzdem die Links zu bekommen.
    3. Das ist unwichtig für die Seite. So unwichtig, dass ich nicht mal aus dem Kopf weiß, ob ich Meta-Tags für die Bots eingerichtet habe.

    Setze Jquery dort ein, wo es sinnvoll ist (Was Du dort machst, gehört nicht zu den sinnvollen Anwendungen) und baue deine Seitenstruktur in üblicher Weise auf.
    Dafür wirst Du leider dein komplettes Konzept überarbeiten müssen.
    Ein Menü wie das deine, läßt sich auch mit purem CSS erreichen. Damit wäre schon mal eine Abhängigkeit von Javascript beseitigt.
    Wenn Du die Inhalte dann seitenweise in eine Datenbank packst und die einzelnen Seiten mit Standardlinks aufrufst, ist auch das Problem der nicht wechselnden URL erledigt.

    Die sch. CSS Menüs habe ich schon hinter mir, ich bin mit JS zufriedener, keine Ahnung warum, aber entweder funktionieren die CSS Menüs nicht so wie ich es mir vorstelle und/oder es gibt Probleme mit anderen Browsern (Grüße an google Chrome). Naja, vielleicht kannst du besser damit arbeiten als ich, mich hat es jedenfalls schon viel zu viel Zeit gekostet.

    Kleiner Tipp noch am Rande: Solltest Du Graphiken, Kartenbilder oder Ähnliches vom Spiel auf deiner Seite verwenden wollen, hol dir vorher (!) eine Genehmigung. Konami ist da ziemlich empfindlich.

    Die ursprüngliche Seite existiert (in anderer Form und Nutzung) seit 2005 Konami hat sich noch nicht gemeldet. Zumal ich jetzt noch weniger Bilder verwende, für die neue Seite ist vorerst gar keins geplant.

    Nachtrag: Solange der Validator Fehler und Warnungen ausspuckt, solltest Du eventuell auf die Einblendung der Logos vom W3C verzichten. :wink:

    Der Link den ich gegeben habe ist nur zu Testzwecken, wenn der Validator Fehler ausspuckt ist das also nichts unnormales. ;)
    Die Live-Seite befindet sich auf meiner direkten lima-city Domain, selnstverständlich ohne Fehler. ;)

    Aber wenn es wirklich keine andere Möglichkeit gibt das Script effektiver zu nutzen, dann muss ich es natürlich wieder wie vorher einrichten, denn die Links sind sehr wichtig. Wichtiger als der Schnick-Schnack mit dem Menü.
  5. yomifrog schrieb:
    Was ist wichtiger, der Aufwand, oder der Erfolg?

    Beides. Ist der Aufwand zu groß fällt der Erfolg im Verhältnis dazu zu gering aus.

    Wenn aber der bisherige Weg der Falsche ist, ist der Nutzen gering und der Erfolg wird sich nicht einstellen, es sei denn, das Angebot ist so einzigartig, daß der Nutzer es in Kauf nehmen muß.
    Und ganz ehrlich: Egal was Du unternimmst, so groß ist der Aufwand einer Neugestaltung nicht, als das es sich nicht lohnen würde. Eine gut gemachte Website läuft für Jahre (Yu-Gi-Oh wird vermutlich nicht bereits morgen Geschichte sein.) und beim Aufwand reden wir über Stunden. :wink:


    1. Was ist das Problem am JavaScript? Es funktioniert einwandfrei, wer es abschaltet hat selber schuld, wenn dann sein Internet nur noch halb so viel kann.

    Das mag auf die User zutreffen, die JS bewußt deaktivieren. Was ist mit denen, die es nicht nutzen KÖNNEN? Stichwort: Barrierefreiheit.

    2. Richtig und das brauchst du mir nicht sagen.^^ Ich fragte hier nur nach einer Möglichkeit, ob es vielleicht einen Weg gibt das Script weiterhin zu nutzen und trotzdem die Links zu bekommen.

    Das ich das nicht brauche/muß ist mir klar. Ich tue es freiwillig und ohne Zwang. :wink:
    Aus Sicht des Nutzers kann ich nur sagen, daß mich gerade so was ankotzt. Ich möchte einzelne Seiten bookmarken können, ohne später das Gewünschte immer wieder auf der Hauptseite suchen zu müssen. Aber gut, es ist deine Entscheidung, was Du deinen Usern zumutest. Einen Vorteil sehe ich, bei dem von dir gewählten Weg, nicht.


    Die sch. CSS Menüs habe ich schon hinter mir, ich bin mit JS zufriedener, keine Ahnung warum, aber entweder funktionieren die CSS Menüs nicht so wie ich es mir vorstelle und/oder es gibt Probleme mit anderen Browsern (Grüße an google Chrome). Naja, vielleicht kannst du besser damit arbeiten als ich, mich hat es jedenfalls schon viel zu viel Zeit gekostet.

    Was und womit du, gerade im Bezug auf Google Chrome, so schlechte Erfahrungen gemacht hast, würde mich wirklich interessieren. (Antwort, wenn gewünscht, bitte am besten per PN, da das doch etwas vom eigentlichen Thema abweicht )
    Normalerweise sind CSS-Menüs deutlich weniger anfällig für die Eigenarten der Browser, als Javascript basierende Lösungen. Da hast Du wohl bisher nur die schlechten Beispiele kennengelernt.

    Zum Thema Konami und Bilder: Da hast Du wohl bisher sehr viel Glück gehabt. Ich weiß,daß gerade Konami bei solchen Dingen sehr heikel ist.

    Aber wenn es wirklich keine andere Möglichkeit gibt das Script effektiver zu nutzen, dann muss ich es natürlich wieder wie vorher einrichten, denn die Links sind sehr wichtig. Wichtiger als der Schnick-Schnack mit dem Menü.

    Schnick-Schnack ist nie wichtig. :wink: Ob deine vorherige Lösung eine bessere war, kann niemand sagen, der diese nicht kennt. Fakt ist aber wohl, daß das jetzige nicht deinen Anforderungen genügt. Entweder baust Du das Skript um, so daß auch die anderen Links passend umgesetzt werden, oder Du verzichtest auf den Einsatz.

    Beitrag zuletzt geändert: 10.1.2012 0:33:04 von fatfreddy
  6. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!