mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: Fr 19.04.2024 13:50 Benutzername: Passwort: Auto-Login

Thema: Switch Content & Smarty (JQuery) vom 16.07.2010


Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Programmierung -> Switch Content & Smarty (JQuery)
Seite: 1, 2  Weiter
Autor Nachricht
SimonDerDude
Threadersteller

Dabei seit: 15.01.2010
Ort: error: undefined
Alter: 35
Geschlecht: Männlich
Verfasst Fr 16.07.2010 09:59
Titel

Switch Content & Smarty (JQuery)

Antworten mit Zitat Zum Seitenanfang

Tagchen,

ich bin gerade auf Kriegsfuß mit Smarty.
Ich durfte dem Intranet unserer Agentur ein Re-Design verpassen und habe den gesamten Content in .tpl angelegt.
Es ist eine Navigation vorhanden, welche mit Leveln aus einer Datenbank erzeugt wird.
Hat alles dolle funktioniert, aber der Chef so:
Der gescrollte Content soll nicht nach oben springen wenn ein Link geklickt wird.
Da ich die Navigation eh mit JavaScript (Treeview Menu) gestaltet habe, war ich der Meinung folgendes Script zu nutzen um ein Reload der Seite zu verhindern:
Code:

{literal}
<script type="text/javascript">
   var $j = jQuery.noConflict();
   $j(document).ready(function(){
       $j("ul li a").click(function(){
           $j.ajax({
                url: $j(this).attr("href"),
                success: function(response) {
                  $j("#con").html(response);
                }
   
            });
   
          return false;
   
       });
   
   });
</script>
{/literal}


Gut, es funktioniert auch, jedoch wird im betitelten Container nicht nur der Inhalt der tpl Datei ausgegeben sondern das gesamte Layout.
Ich weiss gerade auch nicht recht wonach ich suchen muss.
Logischerweise gibt es keine live ansicht, deshalb nur ein Screenshot des Problems:
Screen

Ich schätze, dass irgend etwas am JS geändert werden muss, für Fragen und Anregungen bin ich offen.
Vielleicht bin ich auch einfach nur zu müde * Ich bin müde... *
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
Eistee
Administrator

Dabei seit: 31.10.2001
Ort: Grimma
Alter: 45
Geschlecht: Männlich
Verfasst Fr 16.07.2010 10:19
Titel

Antworten mit Zitat Zum Seitenanfang

Das Problem hat aber rein gar nichts mit Smarty zu tun. Du lädst eine komplette HTML Seite (egal woher) in deinen Content div, d.h. das was du siehst ist genau richtig Lächel
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
Anzeige
Anzeige
SimonDerDude
Threadersteller

Dabei seit: 15.01.2010
Ort: error: undefined
Alter: 35
Geschlecht: Männlich
Verfasst Fr 16.07.2010 10:59
Titel

Antworten mit Zitat Zum Seitenanfang

Das heisst ich muss in der tpl zu html Konvertierung verhindern dass das gesamte layout erzeugt wird?
Oder habe ich gerade eine falsche Auffassung des Scriptes...
Es wird doch lediglich der Platzhalter ausgefüllt warum kommt da der komplette content <-- Schuld!
Ich habe das Rad nicht neu erfunden, daher muss ich mir erst den wirklich kompletten überblick verschaffen was das Script überhaupt genau tut.


Zuletzt bearbeitet von SimonDerDude am Fr 16.07.2010 11:03, insgesamt 1-mal bearbeitet
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
SimonDerDude
Threadersteller

Dabei seit: 15.01.2010
Ort: error: undefined
Alter: 35
Geschlecht: Männlich
Verfasst Fr 23.07.2010 09:25
Titel

Antworten mit Zitat Zum Seitenanfang

Wie ich es halt nicht gerafft habe, Eistee hat natürlich recht.
Code:
url: $j(this).attr("href")


Kein Wunder wird das komplette Layout geladen wenn ich auf die url zugreife.
Nun frage ich mich bloß wie ich NUR den hintersten Teil abgreife.
Der sieht ja z.B. so aus:
Code:
/index.php?page=miniERP


Hat jemand schonmal so etwas gemacht?
Ich werde sogleich nach dem Post Googl0arn, ich schreibe bloß schon weil ich nicht ewig dafür Zeit habe.
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
zweitaccount

Dabei seit: 25.01.2008
Ort: -
Alter: -
Geschlecht: -
Verfasst Fr 23.07.2010 09:33
Titel

Antworten mit Zitat Zum Seitenanfang

Moin,
du könntest deiner Url beim Request noch einen
Parameter dranhängen (z.B. async=true) und auf
deinen Templates abfragen isset($_GET['async'])
und wenn ja nur den gewünschten Teil ohne Head
etc... ausgeben lassen.

Grüße
Zweitaccount
  View user's profile Private Nachricht senden
SimonDerDude
Threadersteller

Dabei seit: 15.01.2010
Ort: error: undefined
Alter: 35
Geschlecht: Männlich
Verfasst Fr 23.07.2010 10:02
Titel

Antworten mit Zitat Zum Seitenanfang

zweitaccount hat geschrieben:
einen Parameter dranhängen

Awesome, auf sowas sind nichtmal die im Smarty Forum gekommen.
Ich versuche das mal - besten Dank


Zuletzt bearbeitet von SimonDerDude am Fr 23.07.2010 10:03, insgesamt 1-mal bearbeitet
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
sahnemuh

Dabei seit: 19.06.2003
Ort: /dev/null
Alter: 42
Geschlecht: Männlich
Verfasst Fr 23.07.2010 23:43
Titel

Antworten mit Zitat Zum Seitenanfang

ansonsten kannst du den geladenen schwund auch explizit auf einen container parsen:
http://api.jquery.com/load/ hat geschrieben:

Loading Page Fragments

The .load() method, unlike $.get(), allows us to specify a portion of the remote document to be inserted. This is achieved with a special syntax for the url parameter. If one or more space characters are included in the string, the portion of the string following the first space is assumed to be a jQuery selector that determines the content to be loaded.

We could modify the example above to use only part of the document that is fetched:

$('#result').load('ajax/test.html #container');

(statt $.ajax)

... erzeugt aber natürlich massig overhead (sollte ja im intranet aber nicht so wichtig sein).


Zuletzt bearbeitet von sahnemuh am Fr 23.07.2010 23:43, insgesamt 1-mal bearbeitet
  View user's profile Private Nachricht senden
bacon

Dabei seit: 24.10.2007
Ort: -
Alter: -
Geschlecht: -
Verfasst Sa 24.07.2010 13:01
Titel

Antworten mit Zitat Zum Seitenanfang

zweitaccount hat geschrieben:
Moin,
du könntest deiner Url beim Request noch einen
Parameter dranhängen (z.B. async=true) und auf
deinen Templates abfragen isset($_GET['async'])
und wenn ja nur den gewünschten Teil ohne Head
etc... ausgeben lassen.

Grüße
Zweitaccount


JQuery sendet sowieso den X-REQUESTED-WITH-Anfrageheader, damit kann man sich so ein Parametrisierungsgeschrummel sparen.


Zitat:
Awesome, auf sowas sind nichtmal die im Smarty Forum gekommen.


Das wundert mich nicht.

http://fabien.potencier.org/article/34/templating-engines-in-php


Zuletzt bearbeitet von bacon am Sa 24.07.2010 13:02, insgesamt 1-mal bearbeitet
  View user's profile Private Nachricht senden
 
Ähnliche Themen jquery - hide content in jquery object
jquery page switch plugin
Javascript "Content-Switch" mit Effekt
Suche jQuery Content Switcher
Content-Scoller als jQuery-Plugin gesucht
JQuery Slide: Button und Content unabhängig?
Neues Thema eröffnen   Neue Antwort erstellen Seite: 1, 2  Weiter
MGi Foren-Übersicht -> Programmierung


Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst an Umfragen in diesem Forum nicht mitmachen.