# Remote-Combo in der Plugin-Konfiguration

**URL:** https://forum.shopware.com/t/remote-combo-in-der-plugin-konfiguration/34943
**Category:** Programmierung
**Created:** [1. März 2016 um 15:45 UTC](https://forum.shopware.com/t/remote-combo-in-der-plugin-konfiguration/34943 "2016-03-01T15:45:22Z")
**Posts on this page:** 9
**Page:** 1

<div class="post-metadata">

### Author: ![groftware](https://avatars.discourse-cdn.com/v4/letter/g/c68b51/32.png) [@groftware](https://forum.shopware.com/u/groftware)
#### Post date: [1. März 2016 um 15:45 UTC](https://forum.shopware.com/t/remote-combo-in-der-plugin-konfiguration/34943/1 "2016-03-01T15:45:22Z")

</div>

Hallo,

ich versuche gerade, in meine&nbsp;Plugin-Konfigurationsseite eine Remote-Selectbox einzubauen.

Beispiel:&nbsp;Man wählt eine Firma aus und erhält zu dieser beispielsweise verschiedene Telefonnummern. Diese sollen von dem Server anhand der vorherigen “Firmenauswahl” nachgeladen werden.

&nbsp;

Ich habe in dem Form folgendes Element hinzugefügt:

```
$form = $this->Form();
$form->setElement('comboremote', 'phonenumber', array(
    'label' => 'Telefonnummer',
    'store' => 'base.Phonenumber',
    'value' => '-',
    'required' => true,
));

```

Die app.js hat den Store und das Model:

```
    stores: [
        'Phonenumber'
    ],

    models: [
        'Phonenumber'
    ],

```

“bindStoreListeners” meldet jedoch:&nbsp;TypeError: undefined is not an object (evaluating ‘a.on’)

Vermutlich wird die app.js auf der Plugin-Konfigurationsseite nicht geladen, wie kann ich diese an der Stelle einbinden?

&nbsp;

VG&nbsp;

&nbsp;

---

<div class="post-metadata">

### Author: ![TeichDatensysteme](https://avatars.discourse-cdn.com/v4/letter/t/43a26b/32.png) [@TeichDatensysteme](https://forum.shopware.com/u/TeichDatensysteme)
#### Post date: [2. März 2016 um 08:54 UTC](https://forum.shopware.com/t/remote-combo-in-der-plugin-konfiguration/34943/2 "2016-03-02T08:54:13Z")

</div>

Hi,

guck dir mal die Remotecombo an:&nbsp;[http://community.shopware.com/Shopware-4-plugin-configuration\_detail\_1287.html#Selection\_field\_.2F\_remote\_combo](http://community.shopware.com/Shopware-4-plugin-configuration_detail_1287.html#Selection_field_.2F_remote_combo)  
Die ist im Prinzip dafür gemacht für async. Abfragen.

Schöne Grüße,  
Niklas

---

<div class="post-metadata">

### Author: ![groftware](https://avatars.discourse-cdn.com/v4/letter/g/c68b51/32.png) [@groftware](https://forum.shopware.com/u/groftware)
#### Post date: [2. März 2016 um 15:08 UTC](https://forum.shopware.com/t/remote-combo-in-der-plugin-konfiguration/34943/3 "2016-03-02T15:08:42Z")

</div>

Hi Niklas,

danke für deine Antwort. Im Prinzip geht es in die richtige Richtung. Weißt du, wie ich die Texteingaben eines anderen Elements mit an den Server senden kann? Aktuell sendet er nur die Eingabe in die Remotecombo als “query=…” mit.

&nbsp;

Beste Grüße,

Max

---

<div class="post-metadata">

### Author: ![TeichDatensysteme](https://avatars.discourse-cdn.com/v4/letter/t/43a26b/32.png) [@TeichDatensysteme](https://forum.shopware.com/u/TeichDatensysteme)
#### Post date: [2. März 2016 um 15:20 UTC](https://forum.shopware.com/t/remote-combo-in-der-plugin-konfiguration/34943/4 "2016-03-02T15:20:39Z")

</div>

Hallo Max,

verstehe die Frage nicht, was ist denn eine&nbsp;“Texteingaben eines anderen Elements”?

Bezogen auf die Remotecombo wird eben ein Aufruf auf deinen angegebenen Backend Controller gesendet, der die gewünschten Parameter per GET überträgt, und die Antwort als JSON erwartet.

Schöne Grüße,  
Niklas

---

<div class="post-metadata">

### Author: ![groftware](https://avatars.discourse-cdn.com/v4/letter/g/c68b51/32.png) [@groftware](https://forum.shopware.com/u/groftware)
#### Post date: [2. März 2016 um 15:25 UTC](https://forum.shopware.com/t/remote-combo-in-der-plugin-konfiguration/34943/5 "2016-03-02T15:25:34Z")

</div>

Hi Niklas,

sorry für das Missverständnis 🙂

In dem 1. Element (Normale Combo) wird ja die Firma ausgewählt.

In dem 2. Element (Remote Combo)&nbsp;wird die Telefonnummer ausgewählt -&nbsp;abhängig von der Auswahl des 1. Elements „Firma“. Somit müsste die Auswahl (der Firma) an den Server gesendet werden, damit dieser die entsprechenden Telefonnummern&nbsp;für diese Auswahl liefern kann.

&nbsp;

Beste Grüße,

Max

---

<div class="post-metadata">

### Author: ![TeichDatensysteme](https://avatars.discourse-cdn.com/v4/letter/t/43a26b/32.png) [@TeichDatensysteme](https://forum.shopware.com/u/TeichDatensysteme)
#### Post date: [2. März 2016 um 15:34 UTC](https://forum.shopware.com/t/remote-combo-in-der-plugin-konfiguration/34943/6 "2016-03-02T15:34:21Z")

</div>

Ah, gute Frage - ich habe keine Ahnung - würde mich auch interessieren.  
Alle Ideen die ich dazu hätte würden trotzdem nicht den aktuellen Wert der 1. Remotecombo beziehen …

Mh - würde mich sehr interessieren.

Schöne Grüße,  
Niklas

---

<div class="post-metadata">

### Author: ![Pixeleyes](https://avatars.discourse-cdn.com/v4/letter/p/96bed5/32.png) [@Pixeleyes](https://forum.shopware.com/u/Pixeleyes)
#### Post date: [3. März 2016 um 18:53 UTC](https://forum.shopware.com/t/remote-combo-in-der-plugin-konfiguration/34943/7 "2016-03-03T18:53:43Z")

</div>

Eventuell unterstützt diese Combo auch einen listeners. Schau dir das Plugin vom Paypal an (Bootstrap.php, Funktion createMyForm \> Element “Jetzt Api Signatur erhalten”).

Sofern dies &nbsp;bei der remotecombo funktioniert, könntest du den Wert dann den selektierten Wert/ID der ersten Remotecombo zugreifen unf&nbsp;der zweiten Combo als extraparams mitliefern

Simples Beispiel (nicht ausgetestet )  
&nbsp;

```
$remoteUrl = Shopware()->Front()->Router()->assemble(array("controller"=>"UserManager","action"=>"getUsers"));
    $form->setElement('combo', 'TEST', array('label'=>'Backend-User','value'=>'Please select',
        'valueField'=>'id','displayField'=>'username',
        'triggerAction' => 'all',
        'store' => 'new Ext.data.Store({
	    fields: [
		   "id",
		   "username"
            ],
           proxy : {
			 type : "ajax",
             extraParams: {cid : DEINZUSÄTZLCIHERPARAMETER},
			 autoLoad : true,
			 api : {
				 read : "'.$remoteUrl.'",
			 },
			 reader : {
			 type : "json",
			 root : "data"
			 }
		}
	})'
	, 'scope' => \Shopware\Models\Config\Element::SCOPE_SHOP));

```

&nbsp;

---

<div class="post-metadata">

### Author: ![TeichDatensysteme](https://avatars.discourse-cdn.com/v4/letter/t/43a26b/32.png) [@TeichDatensysteme](https://forum.shopware.com/u/TeichDatensysteme)
#### Post date: [3. März 2016 um 19:06 UTC](https://forum.shopware.com/t/remote-combo-in-der-plugin-konfiguration/34943/8 "2016-03-03T19:06:47Z")

</div>

Huhu!

Noch ein Hinweis (leider finde ich meinen alten Beitrag nicht mehr zu dem Thema).

Ich hatte mal in der Plugin-Auslieferung Probleme mit der API Url der Remotecombo.  
Und zwar wird die gecached, wenn diese über den Router()-\>assemble … gebildet wird.  
Das kann zu Problemen führen, wenn das Plugin/der Shop zunächst z.B. in einem Unterordner installiert wird, und später in ein anderes umzieht (z.B. root).  
Dann kracht es, weil per GET eine falsche (alte URL) gebaut wird - konnte ich so nachvollziehen unter mehreren Systemen.  
Die Angaben hat man auch nicht aus dem Cache bekommen, wurde damals in dem Beitrag auch thematisiert …

Shopware hat mir damals in dem Beitrag empfohlen NICHT die Backend-URL mit dem oben genannten Beispiel mit dem Router zu bauen, sondern direkt per Js (Ausschnitt)

```
api : {
    read: document.location.pathname + \'Base/getCustomerGroups\',
}

```

Hier wird der Backend Controller _Base_ mit der action _getCustomerGroups_ aufgerufen.

Viel Erfolg,  
Niklas

---

<div class="post-metadata">

### Author: ![groftware](https://avatars.discourse-cdn.com/v4/letter/g/c68b51/32.png) [@groftware](https://forum.shopware.com/u/groftware)
#### Post date: [7. März 2016 um 20:13 UTC](https://forum.shopware.com/t/remote-combo-in-der-plugin-konfiguration/34943/9 "2016-03-07T20:13:55Z")

</div>

Hi,

danke euch beiden für die Tipps, “extraParams” hat mich schonmal einen Schritt weiter gebracht. Allerdings wird die Server-Antwort wohl auf der Client-Seite gecached. Die Daten werden nicht bei&nbsp;jedem “aufklappen” der Combobox geladen, somit würde eine Änderung des abhängigen Feldes “Firma” die Remote-Combo nicht mehr beeinflussen.

Ist es eigentlich auch möglich jQuery zu verwenden? Das würde das Problem in 5 Minuten lösen :S

&nbsp;
