# Freitextfeld - Auswahlfeld - Wert im Frontend auslesen?

**URL:** <https://forum.shopware.com/t/freitextfeld-auswahlfeld-wert-im-frontend-auslesen/40870>\
**Category:** Programmierung\
**Created:** [27. Oktober 2016 um 07:37 UTC](https://forum.shopware.com/t/freitextfeld-auswahlfeld-wert-im-frontend-auslesen/40870 "2016-10-27T07:37:53Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![elbsurfer](https://avatars.discourse-cdn.com/v4/letter/e/90ced4/32.png) [@elbsurfer](https://forum.shopware.com/u/elbsurfer)\
**Post date:** [27. Oktober 2016 um 07:37 UTC](https://forum.shopware.com/t/freitextfeld-auswahlfeld-wert-im-frontend-auslesen/40870/1 "2016-10-27T07:37:53Z")

</div>

Hallo,

ich habe ein Attribut “Verpackungsart” in der Freitextverwaltung für Artikel angelegt. Diese Attribute haben die Kombination und sind als Auswahlfeld definiert.

[“key” =\> “180”, “value” =\> “Bag in Box”],  
[“key” =\> “557”, “value” =\> “Brotpapier”],  
[“key” =\> “300”, “value” =\> “Glasflasche”]

Wenn dieses Attribut nun ausgewählt und abgespeichert wird, steht 180 in der Datenbank. Im Frontend kann ich mit $sArticle.attr\_verpackungsart auf den Wert zugreifen - dort steht dann 180 im Frontend.

Wie bekomme ich es hin, dass ich im Frontend nicht nur den Wert 180 auslese, sondern die Bezeichnung, die hinter 180 liegt? Im Frontend soll ja “Bag in Box” stehen.

Danke!

---

<div class="post-metadata">

**Author:** ![sschreier](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/sschreier/32/23296_2.png) [@sschreier](https://forum.shopware.com/u/sschreier)\
**Post date:** [27. Oktober 2016 um 07:50 UTC](https://forum.shopware.com/t/freitextfeld-auswahlfeld-wert-im-frontend-auslesen/40870/2 "2016-10-27T07:50:24Z")

</div>

> [@elbsurfer schrieb:](https://forum.shopware.com/profile/23213/elbsurfer "elbsurfer")
> 
> Hallo,
> 
> ich habe ein Attribut „Verpackungsart“ in der Freitextverwaltung für Artikel angelegt. Diese Attribute haben die Kombination und sind als Auswahlfeld definiert.
> 
> [„key“ =\> „180“, „value“ =\> „Bag in Box“],  
> [„key“ =\> „557“, „value“ =\> „Brotpapier“],  
> [„key“ =\> „300“, „value“ =\> „Glasflasche“]
> 
> Wenn dieses Attribut nun ausgewählt und abgespeichert wird, steht 180 in der Datenbank. Im Frontend kann ich mit $sArticle.attr\_verpackungsart auf den Wert zugreifen - dort steht dann 180 im Frontend.
> 
> Wie bekomme ich es hin, dass ich im Frontend nicht nur den Wert 180 auslese, sondern die Bezeichnung, die hinter 180 liegt? Im Frontend soll ja „Bag in Box“ stehen.
> 
> Danke!
> 
> &nbsp;

Hallo,

hast du einmal mit {$sArticle|@var\_dump} nachgesehen, ob im Artikel - Array der Wert bei einer Variable verfügbar ist? Prinzipiell ist der value - Wert für das Backend gedacht und wird (nur) dort angezeigt.

Alternativ könntest du auch in einem Event die ID - Value - Zuweisung implementieren, sodass er dir den Value - Wert in einer eigenen Variable ausgibt.

Beste Grüße

Sebastian

---

<div class="post-metadata">

**Author:** ![elbsurfer](https://avatars.discourse-cdn.com/v4/letter/e/90ced4/32.png) [@elbsurfer](https://forum.shopware.com/u/elbsurfer)\
**Post date:** [27. Oktober 2016 um 09:49 UTC](https://forum.shopware.com/t/freitextfeld-auswahlfeld-wert-im-frontend-auslesen/40870/3 "2016-10-27T09:49:15Z")

</div>

Danke Dir für das schnelle Feedback.

Nein, der $sArticle hat leider nicht das Value des Keys abgespeichert. Ich würde es nun über ein Plugin lösen, aber derzeit weiß ich noch nicht wie ich auf den Wert komme.

Den Key kann ich leicht auslesen, aber dann habe ich eine Zahl wie 157 - wie komme ich dann auf den Wert? Mit einer DSQL? Da muss Shopware doch etwas anderes anbieten, oder?

Auf den Wert am Artikel komme ich mit:

$id = (int) $request-\>sArticle;  
$attributes = $this-\>container-\>get(‘shopware\_attribute.data\_loader’)-\>load(‘s\_articles\_attributes’, $id);

$wert = $attributes[‘verpackungsart’];

---

<div class="post-metadata">

**Author:** ![ahmadsaad](https://avatars.discourse-cdn.com/v4/letter/a/65b543/32.png) [@ahmadsaad](https://forum.shopware.com/u/ahmadsaad)\
**Post date:** [27. Oktober 2016 um 11:26 UTC](https://forum.shopware.com/t/freitextfeld-auswahlfeld-wert-im-frontend-auslesen/40870/4 "2016-10-27T11:26:27Z")

</div>

Hallo elbsurfer,

diese ist gut Frage.Ich brauchte Zeit, um die Antwort zu finden.

```
$sArticle = $view->getAssign('sArticle');

$ConfigurationStruct = $this->container->get('shopware_attribute.crud_service')->get('s_articles_attributes', 'attr_verpackungsart');

$arrayStore = $ConfigurationStruct->getArrayStore();

$arrayStor = json_decode( $arrayStor );

$sArticle['attr_verpackungsart'] = $arrayStor[$sArticle['attr_verpackungsart']];

$view->assign("sArticle", $sArticle);

```

aber Sein Sie sicher dass ‘attr\_verpackungsart’ ist die Korrekt column Name in der Datenbank.

Viele Grüße

Ahmad

---

<div class="post-metadata">

**Author:** ![elbsurfer](https://avatars.discourse-cdn.com/v4/letter/e/90ced4/32.png) [@elbsurfer](https://forum.shopware.com/u/elbsurfer)\
**Post date:** [27. Oktober 2016 um 11:45 UTC](https://forum.shopware.com/t/freitextfeld-auswahlfeld-wert-im-frontend-auslesen/40870/5 "2016-10-27T11:45:55Z")

</div>

Danke Ahmad,

das hat mir sehr geholfen.&nbsp;$arrayStor[$sArticle[‘attr\_verpackungsart’]]; funktioniert bei mir nur nicht, weil ich mehrere Objekte zurückbekomme und kein eindimensionales Array:

```
 array(22) { [0]=\> object(stdClass)#3540 (2) { ["key"]=\> string(3) "180" ["value"]=\> string(10) "Bag in Box" } [1]=\> object(stdClass)#4342 (2) { ["key"]=\> string(3) "557" ["value"]=\> string(10) "Brotpapier" }

```

Ich mache darauf eine foreach und schaue ob der Wert von sArticle == $obj-\>key ist und setze eine Variable, die ich dann ans Frontend zurückgebe.

Danke!

---

<div class="post-metadata">

**Author:** ![ahmadsaad](https://avatars.discourse-cdn.com/v4/letter/a/65b543/32.png) [@ahmadsaad](https://forum.shopware.com/u/ahmadsaad)\
**Post date:** [27. Oktober 2016 um 12:30 UTC](https://forum.shopware.com/t/freitextfeld-auswahlfeld-wert-im-frontend-auslesen/40870/6 "2016-10-27T12:30:20Z")

</div>

Hallo elbsurfer,

Sie brauchen keine foreach.

nur änderen diese Line:

```
$arrayStor = json_decode( $arrayStor, true );

```

&nbsp;

---

<div class="post-metadata">

**Author:** ![elbsurfer](https://avatars.discourse-cdn.com/v4/letter/e/90ced4/32.png) [@elbsurfer](https://forum.shopware.com/u/elbsurfer)\
**Post date:** [27. Oktober 2016 um 12:56 UTC](https://forum.shopware.com/t/freitextfeld-auswahlfeld-wert-im-frontend-auslesen/40870/7 "2016-10-27T12:56:47Z")

</div>

Hallo Ahmad,

doch - denn ich erhalte dies: Also noch eine eben zu viel.&nbsp;

```
 array(22) { [0]=\> array(2) { ["key"]=\> string(3) "180" ["value"]=\> string(10) "Bag in Box" } [1]=\> array(2) { ["key"]=\> string(3) "557" ["value"]=\> string(10) "Brotpapier" }
```

---

<div class="post-metadata">

**Author:** ![ahmadsaad](https://avatars.discourse-cdn.com/v4/letter/a/65b543/32.png) [@ahmadsaad](https://forum.shopware.com/u/ahmadsaad)\
**Post date:** [28. Oktober 2016 um 09:16 UTC](https://forum.shopware.com/t/freitextfeld-auswahlfeld-wert-im-frontend-auslesen/40870/8 "2016-10-28T09:16:13Z")

</div>

also, ja Sie haben Richt.

Diese ist ein&nbsp;multidimensional array.

Sie dürfen “foreach” bebauzen oder mit&nbsp;PHP (`>= 5.5.0`) :  
&nbsp;

```
$arrayStor = json_decode( $arrayStor, true );
$key = array_search( $sArticle['attr_verpackungsart'], array_column($arrayStor , 'key') );
$sArticle['attr_verpackungsart'] = $arrayStor[$key]['value'];

```

Viele Grüße,

Ahmad
