2Danke
ERLEDIGT
JA
JA
ANTWORTEN
8
8
ZUGRIFFE
331
331
EMPFEHLEN
-
Hallo Leute,
ich hab ein Problem, was ich damals in der prozeduralen Programmierung wahrscheinlich nicht gehabt hätte. Ich schicke einen AJAX-Request zu meinem Server, woraufhin er einige Datenbankupdates machen soll, und die Seite neu rendern soll, damit die Aktualisierungen sichtbar werden. Um flexibel zu bleiben (Damit ich auch nur Datenbanken updaten kann oder mir nur die Seite neu Rendern lassen kann) habe ich mir zwei switchschleifen gebaut: (auszugsweise)
Sind jetzt nur die rel. Cases und etwas vereinfacht. In dem array $get sind die Get-Parameter. Naja auf jeden Fall bekomme ich per Ajax noch die alte Version geladen, nach einem Reload kommt erst die neue.PHP-Code:if( $ajax ){
switch(true){
case $get['edit'] == 'ref' && $get['refID']:
$this->updateRef(); //Datenbankupdates
break;
}
switch(true){
case $get['screen'] == 'yes':
$content = $this->renderContent(); //Siterendering
break;
}
}else{
$content = $this->renderContent();
}
Danke schonmal
Noeden
-
Switchschleife........ ist mMn hier ein falscher Ansatz. ein Einfacher if() sollte reichen
Deine Logik wertet bei $ajax aus, ob $get['edit'] auf ^ref' steht und macht dann den Update.
Der Content wird nur neu geladen, wenn $get['screen'] == 'yes'. Ansonsten wird kein neuer Content geladen. Ist diese Bedinung bei deinem Ajax-Aufruf erfüllt? Wenn nicht, wird $content nicht neu geladen---------------------------------------------------------------------------------------------------
item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
item: Tutorial: [PHP][MySQL] Debug Queries
item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben
-
Hmm, ich finde es so eleganter, sollte aber ja auf jeden Fall auf das gleiche hinauslaufen. Ich sehe auch in der Antwort die alte Version. Er führt die renderfunktion definitiv erneut aus und er updated auch auf jeden Fall die Datenbank.
-
-
Nope Napofis
Es ist kein else. Sondern
PHP-Code:if($ajax){
if($get['edit'] == 'ref' && $get['refID']) $this->updateRef();
if($get['screen'] == 'yes') $content = $this->renderContent();
}else{
$content = $this->renderContent();
}
---------------------------------------------------------------------------------------------------
item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
item: Tutorial: [PHP][MySQL] Debug Queries
item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben
-
Ja, das weiß ich
Ich habe den Code der Übersichtlichkeit halber nur gekürzt. Ich habe viel mehr Cases in den Switch-Schleifen. Ich bekomme aber keinen Fehler, und der Content wird neu gerendert, wenn ich nämlich nach Seitenaufbau und vor AJAX-Request eine Debugausgabe einfüge, bekomme ich die per AJAX. Aber wie gesagt, die alte Version von vor dem Datenbankupdate.
PS: Ich gehe davon aus, dass das unerheblich ist, aber ich aktualisiere die Datenbank mit Funktionen aus Typo3 ( $GLOBALS['TYPO3_DB']->exec_UPDATEquery() ).Geändert von Noeden (11.01.12 um 15:38 Uhr)
-
Im Prinzip schon aber wenn ich mir die Variablen so ansehe, lässt sich das bestimmt noch weiter verkürzen und der redundante Aufruf auslagern.
Aber egal ich glaube der eigentliche Fehler liegt in den Operationen:
$this->updateRef()
$content = $this->renderContent()
Eventuell ist es auch ein Caching Fehler?
-
---------------------------------------------------------------------------------------------------
item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
item: Tutorial: [PHP][MySQL] Debug Queries
item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben
-
Danke Napofis, ich bin schon selber drauf gekommen, ganz doofe Geschichte
Das OOP verleitet dazu nur noch über das Interface nachzudenken. Wenn ich dem sage 'gib mir das', dann gibt er mir das. Naja. Ich hab am Anfang ein Array geschrieben, aus dem der Content kam, um die Datenbankabfragen zu minimieren. Da stand natürlich nicht das Update drin
.
Danke an Euch!
Mann ist mir das peinlich
Ähnliche Themen
-
Problem bei Datenbankupdate
Von laempisch im Forum PHPAntworten: 7Letzter Beitrag: 25.02.08, 13:27 -
Wie rendert man?
Von NevLou im Forum Cinema 4DAntworten: 5Letzter Beitrag: 21.03.07, 23:09 -
Datenbankupdate aus formular heraus
Von papabaerchen im Forum PHPAntworten: 9Letzter Beitrag: 27.09.06, 08:44 -
Fehler beim Datenbankupdate nach einem Dateiupload
Von Cesideem im Forum PHPAntworten: 6Letzter Beitrag: 18.02.05, 17:33 -
Seite springt zu schnell um
Von guidograef im Forum HTML & XHTMLAntworten: 1Letzter Beitrag: 15.06.04, 00:06





Zitieren


Login






[PHP][Snippet] Array zu XML konvertieren