Hallo zusammen,
Wie kann ich mit xForm die Datensätze aus der Datenbank weiter in einem Formular verarbeiten.
Beispiel
ID |Name|vorname|strasse|
Wie kann ich den Datensatz mit der ID 5 in einem Formular über xForm aufrufen oder benutzen?
Gruß
Seb
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/
- Markus.Lorch
- Beiträge: 682
- Registriert: 21. Okt 2007, 17:22
- Wohnort: Walheim
Re: xForm Daten Weiterverarbeitung
Dem xForm Formular kannst Du natürlich wieder via GET die ID übergeben und die where Klausel damit befüllen.
1) objparam setzen
2) Hidden Feld definieren (zum Beispiel so)
GET_VARIABLE -> Der Name deiner GET Variable
...
Dazwischen deine ganz normalen Felder die Du bearbeiten möchtest. Das Lable muss dabei mit dem Namen der Spalte in der Datenbanktabelle identisch sein.
...
3) Action definieren
###id### -> lable des Hidden Feldes
Das müsst es gewesen sein
1) objparam setzen
Code: Alles auswählen
objparams|getdata|1
objparams|form_showformafterupdate|1
Code: Alles auswählen
hidden|id|0|GET_VARIABLE|no_db
...
Dazwischen deine ganz normalen Felder die Du bearbeiten möchtest. Das Lable muss dabei mit dem Namen der Spalte in der Datenbanktabelle identisch sein.
...
3) Action definieren
Code: Alles auswählen
action|db|tblname|id=###id###
Das müsst es gewesen sein
Grüße,
Markus Lorch
Tschüssle sagt Herr Nüssle
Markus Lorch
Tschüssle sagt Herr Nüssle
Re: xForm Daten Weiterverarbeitung
Danke Markus,
Soweit versteh ich das ja, aber funktionieren bringen ist was anderes.
Also die Tabelle heißt "user" und ich möchte Name und so weiter in "input" Feldern stehen haben und abändern können.
Gehen wir mal davon aus das der wert nicht übertragen werden muss (mal einfach zum Testen) und die "id" wäre 5.
Wie sieht dann der xForm code aus?
Danke dir
Gruß
seb
Soweit versteh ich das ja, aber funktionieren bringen ist was anderes.
Also die Tabelle heißt "user" und ich möchte Name und so weiter in "input" Feldern stehen haben und abändern können.
Gehen wir mal davon aus das der wert nicht übertragen werden muss (mal einfach zum Testen) und die "id" wäre 5.
Wie sieht dann der xForm code aus?
Code: Alles auswählen
objparams|getdata|1 // was macht das genau?
objparams|form_showformafterupdate|1 // was macht das genau?
hidden|id|0|GET_VARIABLE|no_db
action|db|user|id=5
text|name|Name
text|vorname|Vorname
text|strasse|Straße
Gruß
seb
- Markus.Lorch
- Beiträge: 682
- Registriert: 21. Okt 2007, 17:22
- Wohnort: Walheim
Re: xForm Daten Weiterverarbeitung
Hm. Habs noch mal überarbeitet. War nicht ganz richtig.
Zeile 1: Daten werden aus der datenbank ausgelesen UND in die Felder befüllt.
Zeile 2: Formular wird NACH UPDATE wieder angezeigt.
Zeile 3: Tabelle die ausgelesen wird
Zeile 4: Bedingung welcher Datensatz; ###id### wird durch den Value des Hidden Felds ersetzt
Letzte Zeile: Daten werden in user unter verwendung der main_where wieder zurück geschrieben.
Code: Alles auswählen
objparams|getdata|1
objparams|form_showformafterupdate|1
objparams|main_table|user
objparams|main_where|id=###id####
hidden|id|0|GET_VARIABLE|no_db
text|name|Name
text|vorname|Vorname
text|strasse|Straße
action|db|user|main_where
Zeile 2: Formular wird NACH UPDATE wieder angezeigt.
Zeile 3: Tabelle die ausgelesen wird
Zeile 4: Bedingung welcher Datensatz; ###id### wird durch den Value des Hidden Felds ersetzt
Letzte Zeile: Daten werden in user unter verwendung der main_where wieder zurück geschrieben.
Grüße,
Markus Lorch
Tschüssle sagt Herr Nüssle
Markus Lorch
Tschüssle sagt Herr Nüssle
Re: xForm Daten Weiterverarbeitung
Hi Markus,
Erst mal danke, funktioniert!!
Jetzt hab ich wir auch anders zu erwarten noch fragen mit
kann ich via GET die Daten übertragen?
Und wo finde ich eine Übersichts- und Funktionsliste von xForm die etwas die einzelnen Funktionen beschreibt.
Gruß
Jochen
Erst mal danke, funktioniert!!
Jetzt hab ich wir auch anders zu erwarten noch fragen mit
Code: Alles auswählen
###id###
Und wo finde ich eine Übersichts- und Funktionsliste von xForm die etwas die einzelnen Funktionen beschreibt.
Gruß
Jochen
- Markus.Lorch
- Beiträge: 682
- Registriert: 21. Okt 2007, 17:22
- Wohnort: Walheim
Re: xForm Daten Weiterverarbeitung
Nehmen wir mal an unser Formular wird auf dieser Seite mit folgender URI aufgerufen:
/kategorie/artikel.html?paramater=1
hidden|id|0|parameter|no_db
objparams|main_where|entry_id=###id####
### ### sind Platzhalter für den Wert eines anderen xform Feldes.
Dann wird das Hiddenfeld mit dem GET Wert 1 befüllt, und die main_where welche den Platzhalter des hidden felds nutzt ebenfals mid entry_id=1 gesetzt.
Der Zwischenschritt über das hiddenfeld ist deshalb notwendig, weil nur dieses Daten per REQUEST erhalten kann.
Ich hoffe das war die Antwort auf Deine Frage
P.S. eine Übersichtsliste gibt es, aber Beschreibungen gibts nur die, die auch im Backend stehen - alles weitere muss man im Sourcecode nachlesen.
/kategorie/artikel.html?paramater=1
hidden|id|0|parameter|no_db
objparams|main_where|entry_id=###id####
### ### sind Platzhalter für den Wert eines anderen xform Feldes.
Dann wird das Hiddenfeld mit dem GET Wert 1 befüllt, und die main_where welche den Platzhalter des hidden felds nutzt ebenfals mid entry_id=1 gesetzt.
Der Zwischenschritt über das hiddenfeld ist deshalb notwendig, weil nur dieses Daten per REQUEST erhalten kann.
Ich hoffe das war die Antwort auf Deine Frage
P.S. eine Übersichtsliste gibt es, aber Beschreibungen gibts nur die, die auch im Backend stehen - alles weitere muss man im Sourcecode nachlesen.
Grüße,
Markus Lorch
Tschüssle sagt Herr Nüssle
Markus Lorch
Tschüssle sagt Herr Nüssle
Re: xForm Daten Weiterverarbeitung
Hi Markus,
so ganz bekomme ich es nicht hin.
Also wenn ich das richtig versteh, soll 5 => default wert sein, dann wird ###test### durch 5 ersetzt.
Aber das funktioniert schon nicht, der Fehler "ErrorCode - EntryNotFound" wird ausgegeben.
Gruß
so ganz bekomme ich es nicht hin.
Code: Alles auswählen
objparams|main_where|id=###test###
hidden|test|5|REQUEST_ID|no_db
Aber das funktioniert schon nicht, der Fehler "ErrorCode - EntryNotFound" wird ausgegeben.
Gruß
- Markus.Lorch
- Beiträge: 682
- Registriert: 21. Okt 2007, 17:22
- Wohnort: Walheim
Re: xForm Daten Weiterverarbeitung
Bin mir grade nicht sicher ob es mit dem Default-Wert auch funktioniert, wenn die daten per REQUEST erwartet werden. Probiers doch einfach kurz mit GET.
Grüße,
Markus Lorch
Tschüssle sagt Herr Nüssle
Markus Lorch
Tschüssle sagt Herr Nüssle
Re: xForm Daten Weiterverarbeitung
Dank dir das du dir Zeit nimmst, mir zu helfen.
Hab das alles schon versucht, das mit dem ###id### funktioniert nicht.
PS: Kann ich mir ###id### auch mal ausgeben lassen?
Gruß
seb
Hab das alles schon versucht, das mit dem ###id### funktioniert nicht.
Es funktioniert weder per GET noch der Default Wert.Query: SELECT * from user WHERE Array
Affected Rows: 0
Error Message: Unknown column 'Array' in 'where clause'
Error Code: 1054
Code: Alles auswählen
objparams|getdata|1
objparams|form_showformafterupdate|1
objparams|main_table|user
objparams|main_where|id=###id###
// 1 schon getestet
hidden|id|5|test|no_db
//2 schon getestet
hidden|id||test|no_db
//3 schon getestet
hidden|id|5||no_db
text|name|Test1
text|vorname|Test2
text|strasse|Straße
action|db|user|main_where
Gruß
seb
- Markus.Lorch
- Beiträge: 682
- Registriert: 21. Okt 2007, 17:22
- Wohnort: Walheim
Re: xForm Daten Weiterverarbeitung
Ja du hast recht. Ich hab da selber was verbasselt. Sorry
diese Zeilen bitte wieder löschen:
objparams|main_where|id=###id###
das hidden-field in folgendes ändern:
und unten bei "Bei Submit" => In Datenbank speichern ....
und da unten in der Wehre Klausel folgendes eintragen
So muss es jetzt auf jeden Fall gehen Wenn nicht fress ich nen Besen.
diese Zeilen bitte wieder löschen:
objparams|main_where|id=###id###
das hidden-field in folgendes ändern:
Code: Alles auswählen
hidden|test|5|REQUEST|no_db
und da unten in der Wehre Klausel folgendes eintragen
Code: Alles auswählen
<?php $xform->setObjectparams("main_where",'id="'.rex_request('test','int').'"'); ?>
Grüße,
Markus Lorch
Tschüssle sagt Herr Nüssle
Markus Lorch
Tschüssle sagt Herr Nüssle
Re: xForm Daten Weiterverarbeitung
Also jetzt kann ich es übergeben, bekomme nur noch einen Fehler angezeigt
und für was ist dann eigentlich das hidden dann noch gut?
Gruß
Jochen
und für was ist dann eigentlich das hidden dann noch gut?
Code: Alles auswählen
Notice: Undefined property: rex_article::$objparams in XXX/redaxo/include/classes/class.rex_article.inc.php(133) : eval()'d code on line 68
Jochen
- Markus.Lorch
- Beiträge: 682
- Registriert: 21. Okt 2007, 17:22
- Wohnort: Walheim
Re: xForm Daten Weiterverarbeitung
Das Hidden brauchen wir, damit auch beim Absenden der Parameter wieder mitgesendet wird und der geöffnete Datensatz auch wieder gespeichert werden kann.
Die Fehlermeldung sieht nicht so aus als ob sie von xform kommt - selbiges erhalte ich jedenfalls (habs eben dann doch mal getestet) mit den gemachten Angaben nicht. Aber könntest Du mal dein komplettes Formular posten? (Anderseits wärs aber auch nur ne notice und auf produktivsystemen eh nicht sichtbar)
Verwendest Du die aktuelle Github Version? Dort wurden einige Notices entfernt: https://github.com/dergel/redaxo4_xform
Die Fehlermeldung sieht nicht so aus als ob sie von xform kommt - selbiges erhalte ich jedenfalls (habs eben dann doch mal getestet) mit den gemachten Angaben nicht. Aber könntest Du mal dein komplettes Formular posten? (Anderseits wärs aber auch nur ne notice und auf produktivsystemen eh nicht sichtbar)
Verwendest Du die aktuelle Github Version? Dort wurden einige Notices entfernt: https://github.com/dergel/redaxo4_xform
Grüße,
Markus Lorch
Tschüssle sagt Herr Nüssle
Markus Lorch
Tschüssle sagt Herr Nüssle
Re: xForm Daten Weiterverarbeitung
Ich dreh durch, das kann doch alles nicht so schwer sein.
Ich glaub ich hab komplett ein denk Fehler drin.
Hab es jetzt mal an einer anderen Datenbank versucht, denn mir ist gerade aufgefallen, dass ich keine Update mehr mache Sonden der User immer neue angelegt wurde.
Hast du vielleicht heute nachmittag mal so 15 min um mit mir zu per Tele. oder Ts das zu erklären?
xForm update gemacht und der Fehler ist weg
Gruß
Jochen
Ich glaub ich hab komplett ein denk Fehler drin.
Hab es jetzt mal an einer anderen Datenbank versucht, denn mir ist gerade aufgefallen, dass ich keine Update mehr mache Sonden der User immer neue angelegt wurde.
objparams|getdata|1
objparams|form_showformafterupdate|1
objparams|main_table|rex_sms_zen
hidden|test|5|REQUEST|no_db
text|anbieter|Anbieter
text|netz|Netz
text|url|Url
action|db|rex_sms_zen|main_where
Code: Alles auswählen
<?php
$value = "";
$value = rex_request('test','int');
$value = ($value == "") ? "5" : "".$value."";
$xform->setObjectparams("main_where",'id="'.$value.'"');
?>
xForm update gemacht und der Fehler ist weg
Gruß
Jochen
- Markus.Lorch
- Beiträge: 682
- Registriert: 21. Okt 2007, 17:22
- Wohnort: Walheim
Re: xForm Daten Weiterverarbeitung
Schreib mir ne PM, dann schaun wer mal wie wer das hinkriegen. Heute mittag wirds eher nix.
P.S. mir ist nicht so ganz klar, was du immer mit dieser ID 5 überhaupt willst. Das ist irgendwie Sinnfrei.
P.S. mir ist nicht so ganz klar, was du immer mit dieser ID 5 überhaupt willst. Das ist irgendwie Sinnfrei.
Grüße,
Markus Lorch
Tschüssle sagt Herr Nüssle
Markus Lorch
Tschüssle sagt Herr Nüssle
Re: xForm Daten Weiterverarbeitung
Wie kann ich es verhindern, das es zusätzlich noch neu angelegt wird?
Also stand ist jetzt, es wird ein Update gemacht und einmal neu angelegt.
Wie kann ich das neu anlegen verhindern?
VG
Jochen
Also stand ist jetzt, es wird ein Update gemacht und einmal neu angelegt.
Wie kann ich das neu anlegen verhindern?
VG
Jochen