Zum Inhalt springen

1 PHP-Datei, aber 2 Objekte -> Verständnisproblem


Empfohlene Beiträge

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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]

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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 :rolleyes:

Na mal schauen, ob ich das noch rauskriege...

Link zu diesem Kommentar
Auf anderen Seiten teilen

So, Fehler gefunden und gebannt :rolleyes:

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...