Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

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

Empfohlene Antworten

Veröffentlicht

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.

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]

  • Autor

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.

  • Autor

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

Ich versuch das Problem mal weiter einzugrenzen...

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.

  • Autor

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...

  • Autor

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

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.