toppy Geschrieben 11. Juli 2007 Geschrieben 11. Juli 2007 Ich möchte auf einer Seite Details bzw. Aktionsmöglichkeiten für 2 Verträge anzeigen. Für 1 Vertrag (V1) habe ich es hinbekommen. Der Aufbau schaut wie folgt aus (stark vereinfacht): //Zweig für V1 if V1 vorhanden { <Aktion> } elseif Interessenten für V1 { <Aktion> } else { <Aktion> } //-Zweig für V1[/PHP] Auf der Webseite wird dann in dem vorgesehen Feld für V1 die jeweilige Info angezeigt. Nun habe ich ja noch das Feld für Vertrag 2 (V2). Dafür habe ich unter Zweig V1 den Zweig V2 erstellt => [PHP]//Zweig für V1 if V1 vorhanden { <Aktion> } elseif Interessenten für V1 { <Aktion> } else { <Aktion> } //-Zweig für V1 //Zweig für V2 if V2 vorhanden { <Aktion> } elseif Interessenten für V2 { <Aktion> } else { <Aktion> } //-Zweig für V2 Der wird aber nicht ausgeführt, da ja schon eine Bedingung für V1 erfüllt ist und er somit dort "einspringt". Jetzt ist halt mein Problem, wie ich beide Objekte (V1 und V2) in einer php-Datei abarbeiten kann? Er mir also im Zweig V1 in die richtige Bedingung springt und die Aktionen abarbeitet und es auch im Zweig V2 macht. Zitieren
geloescht_JesterDay Geschrieben 11. Juli 2007 Geschrieben 11. Juli 2007 Der wird aber nicht ausgeführt, da ja schon eine Bedingung für V1 erfüllt ist und er somit dort "einspringt". Wenn du im V1-Zweig das Skript nicht beendest, sollte er auch in den V2-Zweig springen. <?php // wird immer ausgeführt if (Bedingung) { // Wird ausgeführt wenn Bedinung == true ist } elseif (Bedingung2) { // Wird ausgeführt wenn Bedinung2 == true ist [B]und[/B] Bedinung != true } else { // Wird ausgeführt wenn weder Bedingun noch Bedinung2 == true sind } // wird immer ausgeführt ?> [/php] Zitieren
toppy Geschrieben 11. Juli 2007 Autor Geschrieben 11. Juli 2007 Nee, leider nicht. Wenn Vertrag 1 vorhanden ist, springt er im Zweig V1 bei if V1 vorhanden rein und führt die Aktionen aus => also korrekt. Er guckt aber nicht weiter unten im V2 Zweig nach, ob ein Vertrag 2 vorhanden ist bzw. ob eben noch eine weitere if-Bedingung erfüllt wird. Zitieren
toppy Geschrieben 11. Juli 2007 Autor Geschrieben 11. Juli 2007 Mh, jetzt führt er die Aktion unter Zweig V2 durch und lässt jetzt V1 außer acht :upps Ich glaub das passiert, wenn ein Netzheini versucht zu programmieren Ich versuch das Problem mal weiter einzugrenzen... Zitieren
azett Geschrieben 11. Juli 2007 Geschrieben 11. Juli 2007 Das sind doch aber völlig unterschiedliche Parameter, die du da abfragst. Oder seh ich da was falsch? V1 hat doch, wenn ich die Logik richtig gecheckt habe, gar keinen Einfluß auf die V2-Verzweigung? Ich vermute viel eher, du veränderst etwas in deiner <Aktion> in der V1-Verzweigung, was dann Einfluß auf die V2-Verzweigung hat. Zitieren
toppy Geschrieben 11. Juli 2007 Autor Geschrieben 11. Juli 2007 Ja, frage das Ergebnis von 2 unterschiedlichen DB-Abfragen ab. Vermutung von mir war halt, dass er nur eine einzige if-Bedingung abarbeitet und dann das Skript verlässt. Aber wenn ich euch richtig verstanden habe, dann führt er auch das skript weiterhin aus, auch wenn bereits eine if-Bedingung true war. Somit müsste er mir ja eigentlich beide Verträge mit Daten füllen... Arbeite aber auch mit 'nem Template-System. Vielleicht überschreib ich auch ausversehen das V1-Template mit V2 und kriege daher keine Daten für V1 Na mal schauen, ob ich das noch rauskriege... Zitieren
toppy Geschrieben 11. Juli 2007 Autor Geschrieben 11. Juli 2007 So, Fehler gefunden und gebannt Der Fehler lag beim Templatesystem. In meinem Haupt-Template habe ich für jede Variante eine entsprechende Ausschrift hinterlegt (z.B. "Kein Vertrag abgeschlossen" oder "Neue Interessenten"). In den einzelnen if-Abfragen habe ich dann die jeweilige Ausschrift aktiviert. Fehler war hierbei, dass ich auch immer das Haupt-Template neu zugewiesen habe. Somit wurde dann das bereits gefüllte Template V1 mit dem späteren (leeren) Template von V2 überschrieben und die Daten gingen verloren. Schlußendlich weise ich jetz das Haupt-Template nur noch ganz am Anfang der php-Datei einmal zu und aktiviere in den if-Anweisungen nur noch die jeweilige Ausschrift. Es kann so einfach sein... :upps Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.