Hallo,
ich möchte die Werte für die Formularfelder aus der DB holen und habe es schon probiert mit
$xform->setObjectparams('main_table', 'anfragen');
$xform->setObjectparams('main_where', 'index=1');
als auch im Formular mit
action|db_query|select * from anfragen where index=1|Fehlermeldung
Beides funktioniert nicht, bekomme auch keine Fehlermeldung...
Jemand ne Idee?
Tom
Hallo,
Wir haben in letzter Zeit festgestellt, dass die Kommunikation via Slack viel schneller und zielführender ist als ein Beitrag im Forum. Aufgrund der neuen und besseren Möglichkeiten der Kommunikation haben wir uns entschlossen das Forum nur noch als Archiv zur Verfügung zu stellen. Somit bleibt es weiterhin möglich hier nach Lösungen zu suchen. Neue Beiträge können nicht mehr erstellt werden.
Wir empfehlen, für deine Fragen/Probleme Slack zu nutzen. Dort sind viele kompetente Benutzer aktiv und beantworten jegliche Fragen, gerne auch von REDAXO-Anfängern! Slack wird von uns sehr intensiv und meistens "rund um die Uhr" benutzt
Selbst einladen kannst Du dich hier: https://redaxo.org/slack/
Wir haben in letzter Zeit festgestellt, dass die Kommunikation via Slack viel schneller und zielführender ist als ein Beitrag im Forum. Aufgrund der neuen und besseren Möglichkeiten der Kommunikation haben wir uns entschlossen das Forum nur noch als Archiv zur Verfügung zu stellen. Somit bleibt es weiterhin möglich hier nach Lösungen zu suchen. Neue Beiträge können nicht mehr erstellt werden.
Wir empfehlen, für deine Fragen/Probleme Slack zu nutzen. Dort sind viele kompetente Benutzer aktiv und beantworten jegliche Fragen, gerne auch von REDAXO-Anfängern! Slack wird von uns sehr intensiv und meistens "rund um die Uhr" benutzt
Selbst einladen kannst Du dich hier: https://redaxo.org/slack/
Xform Werte aus Datenbank holen
------------------------------------------------
rotzek - Werbung, Hosting und IT
www.rotzek.de
------------------------------------------------
rotzek - Werbung, Hosting und IT
www.rotzek.de
------------------------------------------------
- Peter.Bickel
- Beiträge: 1856
- Registriert: 25. Jan 2005, 21:17
- Wohnort: Schleswig-Holstein
- Kontaktdaten: Website
Re: Xform Werte aus Datenbank holen
Hallo Tom,
sollte so gehen, Code in der "Where Klausel":
Das rex_request ist nicht zwingend, aber empfehlenswert, es "säubert" die Variable.
Das setRedaxoVars ist auch nicht zwingend, es hängt Dir nach dem Abschicken die ID wieder an die URL an (falls benötigt).
Du musst natürlich auch die Tabelle im Selectfeld gewählt haben und ein Häkchen bei "Daten initial aus DB holen".
Lg, Peter.
sollte so gehen, Code in der "Where Klausel":
Code: Alles auswählen
<?php
$id = rex_request('id', 'int', '0');
$xform->setRedaxoVars($this->article_id, $this->clang, array( 'id' => $id ) );
$xform->setObjectparams("main_where","id = $id");
?>
Das setRedaxoVars ist auch nicht zwingend, es hängt Dir nach dem Abschicken die ID wieder an die URL an (falls benötigt).
Du musst natürlich auch die Tabelle im Selectfeld gewählt haben und ein Häkchen bei "Daten initial aus DB holen".
Lg, Peter.
Re: Xform Werte aus Datenbank holen
Hallo Peter,
damit habe ich es hinbekommen, danke. Nur habe ich jetzt das Problem, dass ich die Daten nur initial aus der DB holen möchte, wenn ein bestimmter Datensatz vorhanden ist, ansonsten soll das Formular mit
den Default-Werten geladen werden.
Sprich, das "initial aus DB holen" sollte ich nicht über die checkbox in der xform setzen müssen, sondern über php - geht das?
Liebe Grüsse
Tom
damit habe ich es hinbekommen, danke. Nur habe ich jetzt das Problem, dass ich die Daten nur initial aus der DB holen möchte, wenn ein bestimmter Datensatz vorhanden ist, ansonsten soll das Formular mit
den Default-Werten geladen werden.
Sprich, das "initial aus DB holen" sollte ich nicht über die checkbox in der xform setzen müssen, sondern über php - geht das?
Liebe Grüsse
Tom
------------------------------------------------
rotzek - Werbung, Hosting und IT
www.rotzek.de
------------------------------------------------
rotzek - Werbung, Hosting und IT
www.rotzek.de
------------------------------------------------
- Peter.Bickel
- Beiträge: 1856
- Registriert: 25. Jan 2005, 21:17
- Wohnort: Schleswig-Holstein
- Kontaktdaten: Website
Re: Xform Werte aus Datenbank holen
Nur schnell aus der Hüfte geschossen, ich hab's nicht selbst ausprobiert:
Probier mal, die Felder mit Deinen Defaultwerten zu füllen. Für jeden Feldtyp hat man ja die Möglichkeit, einen Defaultwert zu definieren. Klappt das?
Ansonsten sollte es auch möglich sein, diesen Befehl selbst auszuführen unter bestimmten Bedingungen, wenn Du Deinen Xform-Code selbst aufbaust ohne das Xform-Modul.
Die Passage hierfür hast Du sicher schon selbst gefunden im Xform-Modul-Output:
Probier mal, die Felder mit Deinen Defaultwerten zu füllen. Für jeden Feldtyp hat man ja die Möglichkeit, einen Defaultwert zu definieren. Klappt das?
Ansonsten sollte es auch möglich sein, diesen Befehl selbst auszuführen unter bestimmten Bedingungen, wenn Du Deinen Xform-Code selbst aufbaust ohne das Xform-Modul.
Die Passage hierfür hast Du sicher schon selbst gefunden im Xform-Modul-Output:
Code: Alles auswählen
$xform->setObjectparams("getdata",TRUE);
$xform->setActionField("db", array(
"anfragen",
$xform->objparams["main_where"],
)
);
Re: Xform Werte aus Datenbank holen
Hallo Peter,
ja, prima, ich bin auf dem richtigen Weg. Hasdt Du mir vielleicht noch einen anderen Tipp?
Ich nutze die action redirect, action|redirect|2|request/label|field
und bekomme es aber nicht hin damit, dass ein Wert an die entsprechende Seite weitergegeben wird.
ja, prima, ich bin auf dem richtigen Weg. Hasdt Du mir vielleicht noch einen anderen Tipp?
Ich nutze die action redirect, action|redirect|2|request/label|field
und bekomme es aber nicht hin damit, dass ein Wert an die entsprechende Seite weitergegeben wird.
------------------------------------------------
rotzek - Werbung, Hosting und IT
www.rotzek.de
------------------------------------------------
rotzek - Werbung, Hosting und IT
www.rotzek.de
------------------------------------------------
- Peter.Bickel
- Beiträge: 1856
- Registriert: 25. Jan 2005, 21:17
- Wohnort: Schleswig-Holstein
- Kontaktdaten: Website
Re: Xform Werte aus Datenbank holen
Naja, Du musst natürlich nur "request" ODER "label" setzen.
Sprich, Du musst Dich entscheiden, ob Du hier einen Wert verwenden willst, der über request kommt oder aus einem Feld. Am Ende dann der Feldname.
Jedes Feld (und Validatierung und Aktion) ist ein eine eigene Datei im Xform-Ordner classes.
Schau einfach mal rein, man kann im Normalfall recht schnell erkennen, welcher Parameter in der Syntax wie weiter verarbeitet wird.
Dementsprechend leicht könnte man selbst eigene Klassen erstellen durch Kopieren einer bestehenden und Abändern.
Sprich, Du musst Dich entscheiden, ob Du hier einen Wert verwenden willst, der über request kommt oder aus einem Feld. Am Ende dann der Feldname.
Jedes Feld (und Validatierung und Aktion) ist ein eine eigene Datei im Xform-Ordner classes.
Schau einfach mal rein, man kann im Normalfall recht schnell erkennen, welcher Parameter in der Syntax wie weiter verarbeitet wird.
Dementsprechend leicht könnte man selbst eigene Klassen erstellen durch Kopieren einer bestehenden und Abändern.
Re: Xform Werte aus Datenbank holen
Das habe ich schon verstanden, dass es nur ein wert sein kann.
Habe es versucht einen wert eines textfeldes zu übergeben, der kommt aber auf der redirect seite nicht an: action|redirect|2|label|vorname
wie kann ich übrigens der xform sagen, dass sie keinen insert macht beim speichern in die Datenbank,
sonden ein UPDATE? Wenn ich mir die Daten initial aus der db hole, will ich den Eintrag nicht als neuen
Eintrag speichern, sondern den vorhandenen aktualisieren...
Habe es versucht einen wert eines textfeldes zu übergeben, der kommt aber auf der redirect seite nicht an: action|redirect|2|label|vorname
wie kann ich übrigens der xform sagen, dass sie keinen insert macht beim speichern in die Datenbank,
sonden ein UPDATE? Wenn ich mir die Daten initial aus der db hole, will ich den Eintrag nicht als neuen
Eintrag speichern, sondern den vorhandenen aktualisieren...
------------------------------------------------
rotzek - Werbung, Hosting und IT
www.rotzek.de
------------------------------------------------
rotzek - Werbung, Hosting und IT
www.rotzek.de
------------------------------------------------
- Thomas.Blum
- Entwickler
- Beiträge: 5063
- Registriert: 24. Aug 2004, 22:11
- Wohnort: Dresden
- Kontaktdaten: Website
Re: Xform Werte aus Datenbank holen
Hej,
vg Thomas
du müsstest main_where setzentombaer hat geschrieben:wie kann ich übrigens der xform sagen, dass sie keinen insert macht beim speichern in die Datenbank, sonden ein UPDATE? Wenn ich mir die Daten initial aus der db hole, will ich den Eintrag nicht als neuen Eintrag speichern, sondern den vorhandenen aktualisieren...
Code: Alles auswählen
$xform->setObjectparams("main_where", 'id=12');
Re: Xform Werte aus Datenbank holen
Hallo Thomas,
danke für die Antwort. Leider klappt es so nicht. Ich habe main_where bereits gesetzt, um den Eintrag aus der DB zu holen, beim Absenden wird dieser dann aber neu gespeichert und nicht aktualisiert.
Zum besseren Verständnis: Ich habe ein Formular, wenn dieses abgesendet wird, wird mit redirect eine Seite aufgerufen, wo die Formularwerte verarbeitet werden und als Bestellübersicht angezeigt werden.
Möchte jemand diese Daten ändern, kann er auf zurück klicken und gelangt wieder zum Formular. Mittels einer übergebenen ID mit main_where wird der aktuelle Datensatz aus der DB geholt und damit die Form gefüllt.
Damit nun der Datensatz nicht doppelt erzeugt wird, habe ich mir mit einer Abfrage beholfen, die prüft, ob jemand "zurück" geklickt hat und lösche dann den bestehenden Eintrag aus der DB. Beim erneuten Absenden des FOrmulars wird dann eine neuer Datensatz gespeichert und gut. Funktioniert soweit, nur hätte ich es gerne über ein Update gelöst.
LG
Tom
danke für die Antwort. Leider klappt es so nicht. Ich habe main_where bereits gesetzt, um den Eintrag aus der DB zu holen, beim Absenden wird dieser dann aber neu gespeichert und nicht aktualisiert.
Zum besseren Verständnis: Ich habe ein Formular, wenn dieses abgesendet wird, wird mit redirect eine Seite aufgerufen, wo die Formularwerte verarbeitet werden und als Bestellübersicht angezeigt werden.
Möchte jemand diese Daten ändern, kann er auf zurück klicken und gelangt wieder zum Formular. Mittels einer übergebenen ID mit main_where wird der aktuelle Datensatz aus der DB geholt und damit die Form gefüllt.
Damit nun der Datensatz nicht doppelt erzeugt wird, habe ich mir mit einer Abfrage beholfen, die prüft, ob jemand "zurück" geklickt hat und lösche dann den bestehenden Eintrag aus der DB. Beim erneuten Absenden des FOrmulars wird dann eine neuer Datensatz gespeichert und gut. Funktioniert soweit, nur hätte ich es gerne über ein Update gelöst.
LG
Tom
------------------------------------------------
rotzek - Werbung, Hosting und IT
www.rotzek.de
------------------------------------------------
rotzek - Werbung, Hosting und IT
www.rotzek.de
------------------------------------------------