Mehrere Checkboxen implode/explode

Ja weil das von vorher noch drinsteht. Überleg doch mal, du hast jetzt einen String mit Interessen, und weist diesen jetzt mit assign dem Objekt zu, in welches DB-Feld soll assign das schreiben, soll es das erraten? Assign erwartet einen Array mit Feldnamen => Feldwert, und keinen String. Also z.B.

$aMyParams['oxuser__interessen'] = $checked;
$oUser->assign( $aMyParams );

Ist mir eben beim vergleichen aus der UserExtend auch aufgefallen… $aParams['oxuser__oxactive'] = $oUser->oxuser__oxactive->value;

Ich seh nur noch Checkboxen, da geht sowas schnell unter.

Danke auf jeden Fall für die super Hilfe! 1. Hürde geschafft… auf zu den nächsten :slight_smile:

Und da bin ich schon wieder… wie komme ich denn jetzt an die Werte wieder dran?

Habe folgendes versucht:
$oUser = $this->getUser();
$myChecked = $this->_aViewData['oxuser__interessen'];

und das:
$sUserIntField = 'oxuser__interessen';
$myArrIntField = $oUser->$sUserIntField->value;

oder das:
$oUser = $this->getUser();
$myChecked = $oUser->oxuser__interessen->value;

Wenn ich richtig lieg bräuchte ich die Werte ja nur in einer Variable weil ich mit Smarty ja auch exploden kann und die Checkboxen checked setzen kann oder?

Andersrum $this->_aViewData["xxx"] =

Damit werden Daten im Template bereitgestellt.

Hi rubbercut,

was muss denn dann bei den ??? hin?
$gechecked = ????
$this->_aViewData["oxuser__interessen"] = $gechecked;

php:
$gechecked = implode(’,’, $blMyVariable[‘oxuser__interessen’]);
$this->_aViewData[“oxuser__interessen”] = $gechecked;// String

TPL:
[{$oxuser__interessen}]

Korrigiere mich wenn ich jetzt falsch liege, aber damit bekomme ich doch nur die aktuell gespeicherten Daten und nicht die Daten aus der Datenbank oder?

Also wenn ich Checkboxen aktiviere und speichere zeigt mir der Code die aktivierten Checkboxen. Aber rufe ich den Tab erneut auf, ist das Array wieder leer.

Ja, damit kannst nur anschauen, was Du gerade speichern willst. Also sinnfrei :upside_down_face:
Felder aus der Datenbank: Schau einfach in die User_Main.tpl, falls Du dich da befindest.

Hier werden die Felder wie folgt abegrufen: [{$edit->oxuser__oxusername->value}]. Analog zu Deinem Feld wäre es [{$edit->oxuser__ interessen->value}]

Die Daten kommen von hier:

$oUser = oxNew(\OxidEsales\Eshop\Application\Model\User::class);

$oUser->load($soxId);

$this->_aViewData[“edit”] = $oUser;

Hi rubbercut,

perfekt, funktioniert super! Danke dir vielmals!

Wer auch mal bei dem selben Thema ist, hier noch die Lösung um die Checkboxen aktiv zu setzen:

PHP:
$this->_aViewData[“edit”] = explode(’,’, $oUser->oxuser__deinDbFeld->value);

TPL:
[{assign var=“deineVariable” value="$edit"}]

Und in deine Checkbox:
<input … [{if $deineCheckboxValue|in_array:$deineVariable}]checked[{/if}] … >

This topic was automatically closed 365 days after the last reply. New replies are no longer allowed.