Autor |
Beitrag |
OliverN_26
Beiträge: 252
Win7 64-Bit, WinXP SP3
Delphi 7 Enterprise
|
Verfasst: Do 02.08.12 13:52
Hi
Passt sicher nich in dieses Forum aber wegen der Frage will ich mich nicht in nem neuen anmelden
Ich habe folgende Zeile in Javascript (AJAX):
Quelltext 1:
| Grid1.getCombo(spalte).put(tmp_id, tmp_name); |
So funktioniert es. Ich müsste das Objekt aber variabel gestalten bekomm es nur einfach nicht hin. Wie geht das in Javascript?
Aussehen sollte es also so:
Quelltext 1:
| Grid+grid_id.getCombo(spalte).put(tmp_id, tmp_name); |
Geht nur leider nich
1000 Dank im voraus
lg
Oli Moderiert von Martok: Topic aus Sonstiges (Delphi) verschoben am Do 02.08.2012 um 17:31
|
|
thepaine91
Beiträge: 763
Erhaltene Danke: 27
Win XP, Windows 7, (Linux)
D6, D2010, C#, PHP, Java(Android), HTML/Js
|
Verfasst: Do 02.08.12 14:04
Also simple Variante wäre ein Array und über den Index identifizierst du die einzelnen Objekte.
JavaScript-Quelltext
Edit: Ich bin mir grade nicht sicher ob ich deine Frage richtig verstanden habe. Ist "Grid" ein HTML Element?
Zuletzt bearbeitet von thepaine91 am Do 02.08.12 14:41, insgesamt 1-mal bearbeitet
|
|
jaenicke
Beiträge: 19288
Erhaltene Danke: 1743
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Do 02.08.12 14:07
|
|
OliverN_26
Beiträge: 252
Win7 64-Bit, WinXP SP3
Delphi 7 Enterprise
|
Verfasst: Do 02.08.12 14:42
Hab noch nie was mit JQuery gemacht. Wie würde das denn aussehen? Wenn ich einfach folgendes schreibe passiert nix:
JavaScript-Quelltext 1:
| $('#Grid'+grid_id+'.getCombo('+spalte+').put('+tmp_id+', '+tmp_name+')'); |
Zuletzt bearbeitet von OliverN_26 am Do 02.08.12 15:01, insgesamt 2-mal bearbeitet
|
|
thepaine91
Beiträge: 763
Erhaltene Danke: 27
Win XP, Windows 7, (Linux)
D6, D2010, C#, PHP, Java(Android), HTML/Js
|
Verfasst: Do 02.08.12 14:52
So wie es dort steht fehlt eine Klammer. Du kannst eine Variable direkt als Parameter übergeben: getCombo(var);.
Ansonsten kannst du dir über entsprechende Tools solche Fehler auch ausgeben lassen.
|
|
OliverN_26
Beiträge: 252
Win7 64-Bit, WinXP SP3
Delphi 7 Enterprise
|
Verfasst: Do 02.08.12 15:08
hmm .. also
1. versteh ich nicht wo da noch eine Klammer fehlen soll (3 auf / 3 zu)
2. hab ich den ganzen Kram mit den Variablen mal weggelassen und da tut sich mit JQuery auch nix. Kann man das denn wirklich einfach so schreiben oder muss das noch ausgelöst werden?
|
|
thepaine91
Beiträge: 763
Erhaltene Danke: 27
Win XP, Windows 7, (Linux)
D6, D2010, C#, PHP, Java(Android), HTML/Js
|
Verfasst: Do 02.08.12 15:10
Mein Fehler die Klammer ist an der falschen Stelle.
JavaScript-Quelltext 1:
| $('#Grid'+grid_id).getCombo(spalte).put(tmp_id, tmp_name); |
Edit: Die Jquery Bibliothek hast du aber eingebunden oder?
|
|
OliverN_26
Beiträge: 252
Win7 64-Bit, WinXP SP3
Delphi 7 Enterprise
|
Verfasst: Do 02.08.12 15:28
|
|
jaenicke
Beiträge: 19288
Erhaltene Danke: 1743
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Do 02.08.12 15:33
Das beste ist, wenn du das im Browser einmal debuggst. Der zeigt dir Fehler an, du kannst Haltepunkte setzen, ... (zumindest in IE, Chrome und Opera, bei FF noch nur mit Addon)
Ansonsten müsstest du schon mehr Quelltext zeigen, sonst lässt sich da nur schwer sagen was da schief geht, am besten ein kleines Beispiel. Ich weiß nicht woher getCombo kommt, aber wenn das eine Methode des Grids ist, dann muss das so aussehen: JavaScript-Quelltext 1:
| $('#Grid'+grid_id)[0].getCombo(spalte).put(tmp_id, tmp_name); | Grund:
Zurück bekommst du erst einmal ein Array, es könnten ja auch mehrere Elemente passen.
|
|
thepaine91
Beiträge: 763
Erhaltene Danke: 27
Win XP, Windows 7, (Linux)
D6, D2010, C#, PHP, Java(Android), HTML/Js
|
Verfasst: Do 02.08.12 15:56
Da er hier über eine Id sucht sollte immer nur ein Element zurückkommen.
|
|
jaenicke
Beiträge: 19288
Erhaltene Danke: 1743
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Do 02.08.12 15:58
Ich weiß es nicht auswendig, aber ich glaube auch da kam ein Array. Aber das lässt sich am einfachsten eben mit dem Debugger herausfinden. Einfach mal den Ausdruck auswerten und schauen was herauskommt.
|
|
OliverN_26
Beiträge: 252
Win7 64-Bit, WinXP SP3
Delphi 7 Enterprise
|
Verfasst: Do 02.08.12 16:25
Hmm .. da tut sich leider nichts.
Hier mal ein wenig Quellcode.
JavaScript-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| var Grid1 = Tabbar.cells("t1").attachGrid(); Grid1.setImagePath(); Grid1.setHeader(); Grid1.setInitWidths(); Grid1.setColAlign(); Grid1.setColTypes(); Grid1.setColSorting(); Grid1.enableTooltips(); Grid1.enableRowsHover(); ComboBox_laden('55','1','select','6'); |
Es handelt sich hier um eine fertige GRID-Komponente. Ich hab halt eine eigene Methode geschrieben um ComboBoxen innerhalb des Grids zu schalten. Da es aber sein kann das ich mehrere Grids lade muss ich irgendwie sagen welches Grid ich ansprechen will.
so läufts:
JavaScript-Quelltext 1: 2:
| Grid1.getCombo(spalte).put(tmp_id, tmp_name); Grid2.getCombo(spalte).put(tmp_id, tmp_name); |
aber es muss doch gehen das ich den Objekt-Namen am Anfang variabel gestalten kann ?!
Ich hab mal was über "eval" in Javascript gelesen. Könnte ich damit was anfangen?
|
|
jaenicke
Beiträge: 19288
Erhaltene Danke: 1743
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Do 02.08.12 17:32
Wenn du die selber erzeugst als Variablen, ist das ja gar keine ID. Dann speichere das doch einfach in ein Array statt in einzelne Variablen.
JavaScript-Quelltext 1: 2: 3:
| Grids = new Array(); Grids[1] = Tabbar.cells("t1").attachGrid(); ... | Dann hast du ein Array und kannst da direkt über den Index drauf zugreifen.
|
|
thepaine91
Beiträge: 763
Erhaltene Danke: 27
Win XP, Windows 7, (Linux)
D6, D2010, C#, PHP, Java(Android), HTML/Js
|
Verfasst: Do 02.08.12 18:08
Also eine ganze Diskussion um nichts, da der erste Beitrag schon die Antwort geliefert hat. Beim nächsten mal am besten gleich ein wenig Quelltext dazu.
|
|
Martok
Beiträge: 3661
Erhaltene Danke: 604
Win 8.1, Win 10 x64
Pascal: Lazarus Snapshot, Delphi 7,2007; PHP, JS: WebStorm
|
Verfasst: Fr 03.08.12 01:17
Ich hab jetzt die Diskussion nicht weiter verfolgt, aber eins muss ich kurz dazwischenrufen:
jaenicke hat folgendes geschrieben : | JavaScript-Quelltext |
Das ist schlechter Stil, besser wäre Grids = []; oder var Grids = [];, je nachdem ob du wirklich eine globale Variable deklarieren willst oder nicht. new sollte man aber in keinem Fall auf primitive Typen (Object, Array, Number, String, Boolean) anwenden, das kann ggf. in die Hose gehen (auf Function auch nicht, das ist nämlich ein getarntes eval()). Begründung kann man bei Crockford nachlesen, hauptsächlich ist das ein "may not do what you think it does".
_________________ "The phoenix's price isn't inevitable. It's not part of some deep balance built into the universe. It's just the parts of the game where you haven't figured out yet how to cheat."
|
|
OliverN_26
Beiträge: 252
Win7 64-Bit, WinXP SP3
Delphi 7 Enterprise
|
Verfasst: Fr 03.08.12 11:03
Vielen Dank für eure Tips und sorry das ich mich am Anfang nicht richtig ausgedrückt habe. Hat alles geholfen und ich habs hinbekommen. Danke
|
|