| | | | |
| | ||
| Erfahrener Benutzer | Hallo Jungs, ich habe ein Problem wo ich es schon seit ein paar Tagen versuche selber zu lösen, aber ich bin nun an dem Punkt wo ich nicht mehr weiter weis. Ich habe eine Anwendung die auf dem MVC aufbaut. Im Front Controller wird das MVC zusammengebaut und die View am Ende in das Layout gerendert. Wenn ich eine Action über die Browseradressleiste oder über das klicken auf einen Link anfordere dann klappt das auch super. Aber wenn ich dann einen Ajax Request absende dann rendert er mir das komplette Layout in mein Layoutdokument noch mal rein. Aber die view.phtml die ander Ajax Action hängt ist nirgends im Dokument zu sehen. Kurzes Beispiel wo das so auftritt ist. Ich habe die Kundenregistrierung folgendermaßen aufgerufen. Zitat:
Ich habe es mit einer Methode in der View versucht wo das rendern unterdrückt werden soll und dann beim Rednerprzess mit eingebunden. PHP-Code: PHP-Code: PHP-Code: Vielen Dank für eure Hilfe, ich hoffe ich konnte mich verständlich ausdrücken. Gruß der Litter Ps.: Noch eine Bemerkung, ich habe für Ajax Geschichten ein eigenes Modul angelegt, wenn diese in der Anwendung oft benutzt werden. Aber das Problem tritt auch auf wenn ich einem Modul Ajax spezielle Actions habe. So sieht es aus wenn ich den Request mit Ajax absende. Im Bild Anhang seht ihr was passiert wenn ich den Ajax Request absende. Code: ajaxRequest.open("GET", "http://localhost/WendtNeu/Ajax/Autocomplete/plz" + requestString);
__________________ Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir. http://www.lit-web.de Geändert von litterauspirna (29.12.2011 um 10:00 Uhr). | |
| | |
| | |
| PHP Code Flüsterer Registriert seit: 21.08.2005 Beiträge: 4682 PHP-Kenntnisse: Fortgeschritten | |
| | |
| Erfahrener Benutzer Registriert seit: 25.09.2009
Beiträge: 2.114
PHP-Kenntnisse: Fortgeschritten ![]() ![]() | also im KOhana Framework, gibt es da methoden wie before() und after() , der Request ablauf funktioniert etwa so http://localhost/mein_porojekt/testc...ler/testaction wird aufgerufen, danach wird der testcontroller geladen, danach wird erst die funktion before() aufgerufen dann die testaction() dann after(). in before kann man dann im hauptcontroller $this->auto_render auf false setzen. Dadurch wird das Layout nicht geladen sondern es wird erwartet dass die testaction eine ausgabe macht. Hier mal ein Beispiel von meinem Map Controller. PHP-Code: MFG Geändert von BlackScorp (29.12.2011 um 10:09 Uhr). |
| | |
| | |
| Erfahrener Benutzer | Hmm so richtig kann ich dem nicht wirklich folgen. Ich mache das ja auch, nur meine Render Methode in der Action aufgerufen wird. Wäre es denn besser so ein Autocomplete wie bei der PLZ als View Helper zu implementieren? Aber dann besteht das Problem eben noch bei einer Ajax Suche zum Beispiel. Wenn man links etwas eingibt oder eine Checkbox angewählt wird, dann soll der Content nur aktualisiert werden. Aber dann würde der auch das Layout neu ins bestehende Layout rein rendern. Ich stehe momentan vor einem kleinen Loch.
__________________ Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir. http://www.lit-web.de |
| | |
| | |
| Erfahrener Benutzer Registriert seit: 25.09.2009
Beiträge: 2.114
PHP-Kenntnisse: Fortgeschritten ![]() ![]() | naja was ich sagen will PHP-Code: In Kohana gibt es 2 Front Controller, einmal Controller und Controller_Template der Controller_Template ist der Controller der das Layout in der before() action setzt und es dann in der after() methode es rendert und das Ergebnis an das Response Objekt weiter gibt http://pastebin.com/9LK2nQ3p Danach erstellt man ein Front_Controller der vom Controller_Template erbt. Dadurch hat man das $template objekt im Front_Controller und man kann im view dann $content definieren und in der action $this->template->content = 'inhalt' setzen. Wenn man aber dann in der Before action das auto_render auf false setzt, wird es kein template objekt in before() erzeugt und response objekt in der after() action erhält auch kein inhalt. somit kann man in seiner action dann den response->body mit seinem eigenen inhalt füllen, welcher am ende ausgegeben wird. Hoffe jetzt ist einiges etwas klarer MFG |
| | |
| | |
| Erfahrener Benutzer | Mal davon abgesehen wie das andere Frameworks machen, will ich erst mal erfragen ob ich grad mein Problem auch richtig verstanden habe. Ich bin nun immer hin und her zwischen euren Antworten und meinem Code. Kann das Problem daran liegen das ich in jedem Fall immer das Layout mit rendere weil ich das schon seperat im Front Controller immer mit aufrufe? Es wäre also richtiger das rendern eines Dokumentes oder eben nur einer View immer in der Action Methode eines Action Controllers zu machen, weil ich dann in der Action entscheiden kann ob mir nur eine einzelne View bei der Action Ausführung gerendert werden soll oder eben ein ganzes Layout mit der View? Habe ich das in etwa so richtig verstanden? In HMVC zu denken fällt mir doch noch reichlich schwer, von daher wäre es schon mal gut wenn ich das jetzt im gängigen MVC richtig verstanden habe. Danke für eure Antworten Ps.: Weil es da die Methode isAjax() gibt, ich schätze die sagt mir das ein Ajax Request abgesendet wurde, wie kann ich denn ermitteln das ein Ajax Request gesendet wurde?
__________________ Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir. http://www.lit-web.de |
| | |
| | |
| Erfahrener Benutzer | Ok dann habt erst mal vielen Dank. Dann denke ich kann ich mir das seperate Layout Objekt ja auch sparen und wegschmeißen und alles in der View steuern richtig? Ich werde mich dann mal an eine Problemlösung machen und hier noch mal posten. Ist schon erst mal gut das ich jetzt verstanden habe wo das eigentlliche Problem liegt, dass habe ich seit Tagen bis jetzt nicht gerafft. Gruß der Litter
__________________ Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir. http://www.lit-web.de |
| | |
| | ||||||
| Erfahrener Benutzer Registriert seit: 25.09.2009
Beiträge: 2.114
PHP-Kenntnisse: Fortgeschritten ![]() ![]() | Zitat:
Zitat:
Die View klasse soll ledeglich parameter an das zu rendernde dokument übergeben und das ganze dann rendern. Zitat:
Zitat:
eine Klasse Controller , diese Klasse ist leer und hat ledeglich before und after actions. eine Klasse Controller_Layout die von Controller erbt. Dort setzt du das View in der action before und renderst es in action after der HTML code des views soll aber nicht ausgegeben werden, sondern an die klasse Request übergeben werden. eine Klasse Controller_Front die von Controller_Layout erbt. der Front Controller hat zb eine indexAction. da du ja von Controller_Layout erbst, hast du zugrif auf $this->layout. und in der indexAction des Front controllers machste dann $this->layout->content = 'Content'; Danach brauchste eine klasse Request. diese Request klasse holt sich die URL, parst diese um zu ermitteln welcher controller, welche action und welche parameter geladen werden sollen. und dann rufst du die Action before des aufgerufenen controllers auf, dann die action aus der url und dann die action after. in der after action renderst du ja dein layout und dort kannst du es dann ausgeben. Zitat:
In kohana steht in der index.php ganz unten folgendes: PHP-Code: send_headers() die headers können in Controllern gesetzt werden body() gibt das View aus. im grunde hat Request eine statische variable und diese wird durch view erweitert. MFG | |||||
| | |
| | |||
| Erfahrener Benutzer Registriert seit: 26.11.2008
Beiträge: 264
![]() | Zitat:
Zitat:
| ||
| | |
|
| Themen-Optionen | |
| Thema bewerten | |
|
|
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| [Erledigt] jquery ajax request ist immer null | taurus | JavaScript, Ajax und mehr | 3 | 29.08.2011 00:00 |
| Problem: Auslesen eines dynamischen Formulars auf AJAX Basis | Messenger | PHP Einsteiger | 5 | 18.07.2011 14:49 |
| AJAX Problem beim IE bei Übergabe gleicher Parameter | ernesto | PHP Einsteiger | 7 | 28.04.2011 17:44 |
| Problem beim Layout coden | RanMórii | Sonstige | 3 | 08.02.2011 20:26 |
| [Erledigt] AJAX Request funktioniert nicht | Nickstar | JavaScript, Ajax und mehr | 6 | 10.11.2010 20:21 |
| AJAX: Webbrowser zurück, aber wie | jackie1983 | JavaScript, Ajax und mehr | 2 | 04.02.2010 18:20 |
| Javascript in Ajax responseText funktioniert nicht | Plague | PHP Tipps 2007 | 6 | 03.07.2007 21:08 |
| Problem mit CSS Layout | Kein Genie | HTML, Usability und Barrierefreiheit | 3 | 16.03.2007 10:52 |
| innerHTML funktioniert nicht bei AJAX request | Plague | HTML, Usability und Barrierefreiheit | 1 | 21.12.2006 14:30 |
| ajax / popup problem | flflfl | HTML, Usability und Barrierefreiheit | 11 | 11.06.2006 20:05 |
| vor und zurück problem | Crypi | PHP Tipps 2006 | 4 | 10.01.2006 18:52 |
| [Erledigt] Problem mit Layout bei Firefox | HTML, Usability und Barrierefreiheit | 3 | 14.11.2005 15:42 | |
| Problem mit CSS Layout | HTML, Usability und Barrierefreiheit | 5 | 15.10.2005 21:46 | |
| problem mit layout | Beitragsarchiv | 12 | 13.10.2005 12:41 | |
| 3 Div Layout, Problem da Mitte zu lang | faragerri | HTML, Usability und Barrierefreiheit | 3 | 11.08.2005 10:17 |
| Besucher kamen über folgende Suchanfragen bei Google auf diese Seite |
| mvc php was kommt wo rein, ajax result wieder posten, ajaxrequest() with parameters mvc, wie binde ich ajax anfragen in php mvc ein, mvc ajax controller result, ajax response nur inhalt, http request responsetext ausgeben, ajax call mvc, der gesamte rsponsetext, ajax request response, php mvc ajax, ajax php response problems, responsetext gibt php inhalt aus, request.responsetext ganze seite, ajax.request render, ajax request url auslesen, ajax .responsetext hat keinen inhalt, php mvc $this->request, ajax response ausgeben |