[phpBB Debug] PHP Warning: in file [ROOT]/ext/tas2580/seourls/event/listener.php on line 213: Undefined array key "FORUM_NAME"
REDAXO Forum • yform $yform->setObjectparams Problem
Seite 1 von 1

yform $yform->setObjectparams Problem

Verfasst: 15. Aug 2018, 12:10
von tulla
Hallo,

kann mir ggf. jemand helfen?

Ich erstelle ein Formular mit yform und hole die zu ändernden Daten direkt ab um sie im Formular anzuzeigen.
Beim Speichern überschreibt er aber alle anderen Datensätze in der Datenbank mit den nicht im Formular geänderten Daten.
Hier der betreffende Code:

Code: Alles auswählen

$dataset = rex_yform_manager_dataset::get($user_id,'rex_customer');
$yform = $dataset->getForm();
$yform->setObjectparams('form_action',rex_getUrl(11)); 
$yform->setObjectparams("getdata",TRUE);
    $this_user = 'id='.$user_id;
$yform->setObjectparams('main_where',  $this_user);
$yform->setObjectparams('main_table', 'rex_customer');
$yform->setActionField('db', array("rex_customer", "main_where"));    
$yform->setActionField('redirect', array("8"));
echo $dataset->executeForm($yform);
An einer fehlenden ID des zu ändernden Datensatzes kann es nicht liegen, dass habe ich bereits getestet und ausserdem würde er dann das geänderte Feld nicht bei dem richtigen Datensatz ändern.

Ich wäre um Hilfe dankbar!

Re: yform $yform->setObjectparams Problem

Verfasst: 28. Aug 2018, 23:56
von morfer
Ich glaube das brauchst du nicht:

Code: Alles auswählen

$this_user = 'id='.$user_id;
$yform->setObjectparams('main_where',  $this_user);
$yform->setObjectparams('main_table', 'rex_customer');
$yform->setActionField('db', array("rex_customer", "main_where"));    
Da über ex_yform_manager_dataset::get($user_id,'rex_customer'); schon klar ist, dass dieser Datensatz bearbeitet wird.

Also:

Code: Alles auswählen

$dataset = rex_yform_manager_dataset::get($user_id,'rex_customer');
$yform = $dataset->getForm();
$yform->setObjectparams('form_action',rex_getUrl(11)); 
$yform->setObjectparams("getdata",TRUE);
$yform->setActionField('redirect', array("8"));
echo $dataset->executeForm($yform);

Re: yform $yform->setObjectparams Problem

Verfasst: 29. Aug 2018, 09:07
von tulla
Hi,

danke für die Info. Habe es gestestet. War wohl doppelt gemoppelt ... Danke.

Das eigentliche Problem ist damit aber leider immer noch nicht gelöst! :(

[NACHTRAG]
gibt es denn ein anderes Forum, welches bei yform Fragen aktiver ist oder ist das Problem so sellten, weil keiner das yform Formular Objekt nutzt?

Re: yform $yform->setObjectparams Problem

Verfasst: 29. Aug 2018, 13:31
von morfer
Was genau meinst du damit?
Beim Speichern überschreibt er aber alle anderen Datensätze in der Datenbank mit den nicht im Formular geänderten Daten.
Du müsstest ja nur diesen einen Datensatz ändern können. Wenn du die Daten ausliest ins Formular und es dann speicherst werden ja auch alle Felder wieder in die DB geschrieben, oder bringe ich das durcheinander?

Melde dich gerne im Slack Chat an:
https://friendsofredaxo.slack.com/

Dort kann dir viel schneller geholfen werden.

LG Daniel

Re: yform $yform->setObjectparams Problem

Verfasst: 29. Aug 2018, 16:37
von tulla
Ja, dass ist der Fall, es wird nur der Datensatz über die angegebene ID ausgelesen und im Formular angezeigt.
Aber er schriebt scheinbar in die Tabelle ohne where klausel, so dass alle Datensätz angepasst werden, komischer weise nur die nicht im Formular geänderten sondern nur die im Formular gleichgebliebenen schreibt er in alle anderen Datensätze der Tabelle...

Ich weiß zwar nicht was der slack Channel ist, aber ich werde es mal probieren.
Danke für den Tip!

Bei dem slackchannel steht, bitte den Administrator um einen Zugang. Aber wer das ist, steht da nicht ....

Re: yform $yform->setObjectparams Problem

Verfasst: 29. Aug 2018, 16:45
von tulla
Habe den Einladungslink gefunden.
Danke.
Werde es dort auch mal mit Hilfe probieren.