php.de

Zurück   php.de > Webentwicklung > JavaScript, Ajax und mehr

JavaScript, Ajax und mehr dynamisches Scripten und Interaktion auf Clientebene

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 28.03.2011, 15:38  
Erfahrener Benutzer
 
Registriert seit: 10.02.2009
Beiträge: 929
ragtek ist ein sehr geschätzer Menschragtek ist ein sehr geschätzer Menschragtek ist ein sehr geschätzer Menschragtek ist ein sehr geschätzer Mensch
Standard

Was passtiert den, wenn du im Browser index.php?content=blog&action=lastblog aufrufst?
Liefert die Seite etwas aus?
ragtek ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 28.03.2011, 15:51  
Erfahrener Benutzer
 
Registriert seit: 06.10.2009
Beiträge: 112
PHP-Kenntnisse:
Fortgeschritten
ToxicToast ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ja mein Browser liefert mit da etwas aus, nämlich die letzten 4 Einträge aus dem Blog + Header und Footer
Hab grade auch gemerkt das der versuch das so einzubinden nicht sehr gut wäre


Nochmal zum Problem (und ich hoffe nun ist es klar formuliert)

Ich habe ein CMS geschrieben das auf dem MVC Pattern aufgebaut ist
Ich habe eine Model-Klasse, eine Controller-Klasse und Smarty als View

Model & Controller Klasse werden in einer Zentralen index.php inkludiert und aufgerufen.
Mittels $_GET bekommt die Controller Klasse die jeweiligen anzuzeigenden Unterseiten übermittelt.
Diese Unterseiten befinden sich alle in einem seperaten Ordner...
Beispiel: Rufe ich in meiner Index.php nun einen Kalender mittels "index.php?content=calendar" auf, schaut meine Controller-Klasse im Ordner "calendar" und "module" ob es eine "index.php" gibt mit der klasse "calendar" und ruft anschließend diese auf...
gibt es diese seite nicht bekomm ich eine Fehlermeldung das die Seite nicht vorhanden ist

Nun zum Problem - Mittels Jquery will ich ein <div> regelmäßig refreshen lassen.
Angefangen habe ich mit load(); und zwar so:
Code:
$("#lastblog").load("/module/blog/lastblog.php").fadeIn(3000);
Jedoch bekam ich eine Fehlermeldung, das der Controller nicht aufgerufen werden konnte.
Das selbe habe ich mit get ausprobiert, jedoch ohne erfolg...
Code:
$("#lastblog").load("/module/blog/lastblog.php").fadeIn(3000);
Meine nächste Lösung war wieder eine get Lösung und zwar so:
Code:
$("#lastblog").get("index.php?content=blog&action=lastblog").fadeIn(3000);
Diese Lösung lieferte mir weder Fehler noch Ergebniss aus - sondern nichts
Ich hab mir das mal mit Firebug angeschaut - Hier der auszug $("#lastblog").get("index.php?content=blog&action= lastblog") is undefined
Ein load ginge auch nicht... denn da hat er mir das komplette Design mit rein gepackt, Header, Content und Footer...

Meine Frage ist nun, wie realisier ich diese eine Ausgabe mittels Jquery
__________________
Merke: PHP ist keine politische Partei und MySQL ist nicht der Name eines Toasters

Geändert von ToxicToast (28.03.2011 um 16:00 Uhr).
ToxicToast ist offline   Mit Zitat antworten
Alt 28.03.2011, 16:02  
Moderator¹
 
Registriert seit: 28.03.2010
Beiträge: 7.470
PHP-Kenntnisse:
Fortgeschritten
ChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer Anblick
Standard

Zitat:
Zitat von ToxicToast Beitrag anzeigen
Ein load ginge auch nicht... denn da hat er mir das komplette Design mit rein gepackt, Header, Content und Footer...
Dann sorge dafür, dass es eine Adresse gibt, die dir nur das liefert, was du an der Stelle auch haben willst - ggf. über einen zusätzlichen Parameter o.ä., den dein Controller dann entsprechend abfragt.
__________________
RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
ChrisB ist offline   Mit Zitat antworten
Alt 28.03.2011, 16:04  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Wie ich schon sagte, Du hast Ajax nicht verstanden. Ajax liefert nicht magisch JS-gerechte Ergebnisse sondern wenn Du
Zitat:
get("/module/blog/lastblog.php")
post("/module/blog/lastblog.php")
get("index.php?content=blog&action=lastblog")
aufrufst, bekommt Javascript eben als Eingabe genau dieselben Contents wie ein
Zitat:
GET an /module/blog/lastblog.php
POST an /module/blog/lastblog.php
GET Aufruf an index.php?content=blog&action=lastblog
im Browser erzeugt. Falls Dir das nicht klar ist, brauchen wir gar nicht weiterzudiskutieren.

Ergo brauchst Du einen weiteren zentralen (reduzierten) Controller für Ajax
oder
musst Deinen aktuellen Controller zwischen nativen und Ajaxaufrufen unterscheiden lassen (Headers)
oder
musst Dein Javascript so gestalten, dass es nativen Content auf die benötigten Daten reduziert (schlechteste Variante).
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 28.03.2011, 16:04  
Erfahrener Benutzer
 
Registriert seit: 28.05.2008
Beiträge: 2.094
PHP-Kenntnisse:
Fortgeschritten
rudygotya ist einfach richtig nettrudygotya ist einfach richtig nettrudygotya ist einfach richtig nettrudygotya ist einfach richtig nettrudygotya ist einfach richtig nett
Standard

Meist kannst du einen Ajax-Request am X-Requested-With-Header erkennen (XMLHttpRequest).

dirty kannst du auch $.load aufbohren:

$('#sel').load('url selector')
__________________
++++ Wieder einer ins Netz gegangen: Phishers Fritz zufrieden ++++
Blog
rudygotya ist offline   Mit Zitat antworten
Alt 28.03.2011, 16:53  
Erfahrener Benutzer
 
Registriert seit: 06.10.2009
Beiträge: 112
PHP-Kenntnisse:
Fortgeschritten
ToxicToast ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Zitat von nikosch Beitrag anzeigen
Wie ich schon sagte, Du hast Ajax nicht verstanden. Ajax liefert nicht magisch JS-gerechte Ergebnisse sondern wenn Du

aufrufst, bekommt Javascript eben als Eingabe genau dieselben Contents wie ein
im Browser erzeugt. Falls Dir das nicht klar ist, brauchen wir gar nicht weiterzudiskutieren.

Ergo brauchst Du einen weiteren zentralen (reduzierten) Controller für Ajax
oder
musst Deinen aktuellen Controller zwischen nativen und Ajaxaufrufen unterscheiden lassen (Headers)
oder
musst Dein Javascript so gestalten, dass es nativen Content auf die benötigten Daten reduziert (schlechteste Variante).

Dann treffen wir uns in der Mitte und sagen einfach ich habe Ajax nicht richtig verstanden... ich war nämlich der Meinung das ich die php Datei im Unterordner aufrufen kann und das würde genügen...
Dann werd ich meinen Controller unterscheiden lassen MÜSSEN...
__________________
Merke: PHP ist keine politische Partei und MySQL ist nicht der Name eines Toasters
ToxicToast ist offline   Mit Zitat antworten
Alt 28.03.2011, 17:01  
Erfahrener Benutzer
 
Registriert seit: 15.04.2010
Beiträge: 813
PHP-Kenntnisse:
Fortgeschritten
Paul.Schramenko befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von ToxicToast Beitrag anzeigen
Zu meinem CMS, steht doch da wie es aufgebaut ist, einfach mal lesen.
Die Controller Klasse existiert, auch ist mein Server Ajax-fähig
Nein tut es nicht. MVC ist kein Aufbau einer Software sondern und ein Konstrukt wie eben diese Aussehen kann. Es ist sozusagen eine Schablone. Im Endeffekt kann es aber im Einzelfall sehr unterschiedlich sein!
So wie deine Struktur aussieht benutzt du Controller und rufst dabei immer eine bestimmte Action auf. Du redirectest dabi immer auf die index.php die (vermutlich) im DocRoot liegt, von dort aus sollte dann im Idealfall eine passender Controller eingebunden und mit der richtigen Action aufgerufen werden. Deshalb
Code:
/module/blog/lastblog.php
macht dieser Aufruf eher wenig Sinn macht, da du direkt eine PHP-Datei includierst.
Zitat:
Zitat von ToxicToast Beitrag anzeigen
Dann treffen wir uns in der Mitte und sagen einfach ich habe Ajax nicht richtig verstanden... ich war nämlich der Meinung das ich die php Datei im Unterordner aufrufen kann und das würde genügen...
Dann werd ich meinen Controller unterscheiden lassen MÜSSEN...
Ja.
Wenn du mit Ajax einen Request machst, ist das wie ein gaz normaler Request auch. Das Ding wird dann ebenfalls durch deine Index.php geschleust.
__________________
"My software never has bugs, it just develops random features."
"Real programmers don't comment. If it was hard to write, it should be hard to understand!"
Positive Bewertungen sind nicht unwillkommen...
Paul.Schramenko ist offline   Mit Zitat antworten
Alt 28.03.2011, 22:06  
Erfahrener Benutzer
 
Registriert seit: 06.10.2009
Beiträge: 112
PHP-Kenntnisse:
Fortgeschritten
ToxicToast ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Vielendank für die Mühen, ich habs nun hinbekommen
__________________
Merke: PHP ist keine politische Partei und MySQL ist nicht der Name eines Toasters
ToxicToast ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Website in OOP: Wie am besten vorgehen? GreenDelta PHP Einsteiger 13 29.01.2011 12:25
gleich oop lernen oder erst mal prozedural programmieren? Voltage PHP Tipps 2010 7 22.01.2010 16:46
100% OOP wirklich sinnvoll ? Pehapeh PHP-Fortgeschrittene 31 04.12.2009 11:19
Was bringt OOP wenn Objekte nach jeder Seite sterben? majorbenks PHP Tipps 2009 9 18.11.2009 14:11
Wer hilft mir bei OOP? echo Beitragsarchiv 27 23.02.2009 16:12
ausrichtung von divs in divs geht nur im IE litterauspirna HTML, Usability und Barrierefreiheit 5 14.10.2008 14:58
[Erledigt] Divs nebeneinander richtig positionieren das sie nicht verschoben werden litterauspirna HTML, Usability und Barrierefreiheit 12 09.10.2008 09:04
2 Div's zentrieren pfump HTML, Usability und Barrierefreiheit 7 24.04.2008 10:57
Formular mit DIVs Aris Sung HTML, Usability und Barrierefreiheit 2 25.11.2007 14:09
DIV's untereinander -> Problem snatch-ic HTML, Usability und Barrierefreiheit 1 05.02.2007 12:39
3 divs nebeneinander mit dynamisch gleicher Höhe HTML, Usability und Barrierefreiheit 19 18.01.2006 22:05
POST Formular nach refresh nicht erneut ausführen!!!??? PHP Tipps 2005-2 8 07.10.2005 17:08
DIVs nebeneinander freitz HTML, Usability und Barrierefreiheit 4 21.04.2005 22:47
refresh mit variabelprüfung und abspielen einer wav datei PHP Tipps 2005 6 21.03.2005 10:17
[Erledigt] drei divs nebeneinander HTML, Usability und Barrierefreiheit 5 10.01.2005 20:27

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php oop index.php, php datei refreshen lassen

Alle Zeitangaben in WEZ +2. Es ist jetzt 09:33 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum