Mehrere Werte über Combobox speichern

Hallo zusammen, ich hab da mal wieder eine Frage und wäre für jeden Tipp dankbar. Ich habe ein Plugin erstellt, dass zwei neue Felder an die s_order_attributes anhängt. attribute[ricoNewOrderField1] attribute[ricoNewOrderField2] In der Detail Ansicht meiner Bestellungen habe ich nun eine Combobox, die zwei Werte hat. createEditElements: function() { var me = this; var editfield = me.callParent(arguments); var arrayStore = [[1, 'Wert 1'], [2, 'Wert 2'] ]; Ext.define('mymodel', { extend: 'Ext.data.Model', fields: [{ name: 'id', type: 'int' }, { name: 'name', type: 'string' }] }); var store = Ext.create('Ext.data.ArrayStore', { model: 'mymodel', data: arrayStore }); var newOrderField = { xtype: 'combobox', queryMode: 'local', name: 'attribute[ricoNewOrderField1]', dataIndex:'attribute[ricoNewOrderField1]', fieldLabel: 'Neues Feld', allowBlank: true, valueField: 'id', displayField: 'name', store: store } return Ext.Array.insert(editfield, 4, [newOrderField]); Das funktioniert soweit auch alles. Die id wird gespeichert. Kann mir aber jemand sagen, helfen wie ich zweiten Wert (name) zusätzlich speicher? Vielen Dank schon mal. Max

Hi, das ist meines Wissens so ohne Weiteres nicht möglich - es ist ja gerade der Sinn des ganzen displayValue / valueField-Unterscheidung, dass ein Feld für die Anzeige und ein Feld fürs Speichern genutzt wird. Eigentlich ist es auch nicht notwendig, da die ID ja indirekt auch auf einen Namen verweist - wenn es bspw. eine Artikelauswahl wäre, würde die ID 14 ja in der s_articles auch einen Namen haben. Falls du den Namen doch zwingend speichern musst (Denormalisierung), würde ich das am ehesten im Controller machen - ExtJS übergibt also nur die ID an den Controller, du liest da dann den gewünschten Namen aus und speicherst den nochmal in deine eigene Tabelle. Wenn du eine Combo mit Eingabemöglichkeit hast, ist es in ExtJS meines Wissens so, dass du entweder einen Record eines vordefinierten Models erhältst oder eben den String, wenn der Benutzer was Neues eingegeben hat. Falls das nicht weiter hilft, kannst du ja vll. nochmal im Detail beschreiben, warum du das wofür brauchst, das ist mir noch nicht ganz klar :slight_smile: Daniel

Hallo Daniel, vielen Dank für deine Rückmeldung und die Info, dass es so wie ich es mir vorstelle nicht funktioniert. Das Ziel, das ich verfolge ist folgendes: Ich habe einen Lieferstatus, den der Backend-User wählen kann. Werte sind “KW 01” bis “KW 53”. Wenn der User einen Lieferstatus setzt soll eine E-Mail an den Kunden verschickt werden. In der E-Mail soll allerdings nicht z.B. “KW 01” usw. stehen, sondern “Kalenderwoche 01”. Soweit so gut. Der User hat allerdings mehrere KW Auswahlmöglichkeiten. Er hat z.B. “KW 01 - DHL” und “KW 01 - UPS” zur Verfügung. In beiden Fällen wird eine E-Mail generiert in der allerdings nur “Kalenderwoche 01” stehen soll. In den E-Mail Vorlagen hab ich nur Zugriff auf bestimmte Felder (Variablen). Nur “Kalenderwoche 01” kann ich nicht abspeichern, da ich ja dann keine Zuordnung mehr zu dem wirklichen Lieferstatus habe, da dieser “KW 01 - DHL” oder “KW 01 - UPS” sein könnte. Wenn ich “KW 01 - DHL” abspeicher hab ich nicht den Wortlaut “Kalenderwoche 01” in der E-Mail-Vorlage zur Verfügung. Ich könnte “1 - Kalenderwoche 01”, “2 - Kalenderwoche 01” in der Order Attribute Tabelle speichern und in der E-Mail-Vorlage mit Smarty den vorderen Bereich abschneiden. Aber ich dachte das geht auch eleganter. Geht es eleganter? Wenn ich einen Controller, Model usw. für eine eigene Plugin-Tabelle erstelle und die Verknüpfungen herstelle, stehen mir dann diese Felder automatisch in den E-Mail-Vorlagen zur Verfügung? Ich hoffe ich konnte mich verständlich ausdrücken :slight_smile: Vielen Dank und viele Grüße Max