Yii Framework Forum: ID einer "aktiven" Komponente, die über CHtml erzeugt wurde - Yii Framework Forum

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

ID einer "aktiven" Komponente, die über CHtml erzeugt wurde z.B. CHtml::activeTextField($model, $attribute, $htmlop Rate Topic: -----

#1 User is offline   g3ck0 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 96
  • Joined: 03-June 09

Posted 27 July 2009 - 02:49 AM

Guten Morgen,

ich hätte da mal wieder eine Frage, die vor allem Extension-Schreiber durch den Kopf gehen wird/kann. Und zwar kann man ja ein aktives Textfield über CHtml erzeugen, wie das folgende Beispiel zeigt:

$textfield = CHtml::activeTextField($this->model, $this->attribute, $this->htmlOptions);


Nun ist es aber doch so, dass man nach diesem Schritt nicht auf die automatisch generierte ID zugreifen kann, da ja nur HTML-Code zurückgegeben wird und keinerlei Array (oder vergleichbares), in dem mehrere Informationen stehen.

Das mag an sich weniger das Problem sein, ABER wenn man mit JavaScript auf diese Komponente dann zugreifen will, dann kennt man deren ID ja nicht. Somit müsste es eine Möglichkeit geben aus der Komponente irgendwie die ID abzuleiten. Gibt es da schon eine Methode, oder habe ich irgendwas übersehen?

Beim Schreiben dieses Posts ist mir aufgefallen, dass man vielleicht über die htmlOptions die ID setzen kann. muss ich aber erst noch testen.

mfg
Armin
0

#2 User is offline   Mike 

  • Elite Member
  • PipPipPipPipPip
  • Yii
  • Group: Members
  • Posts: 3,013
  • Joined: 06-October 08
  • Location:Upper Palatinate

Posted 27 July 2009 - 02:54 AM

1. Du kriegst die generierte ID mit CHtml::activeId($model,'attribut')
2. Ja, man kann die ID auch mit den HTML-Optionen "erzwingen"
0

#3 User is offline   g3ck0 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 96
  • Joined: 03-June 09

Posted 27 July 2009 - 03:09 AM

Das hört sich doch klasse an! Danke dir für die schnelle Antwort ;)
0

#4 User is offline   Dave 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 187
  • Joined: 09-October 08

Posted 28 July 2009 - 04:26 AM

Für Ajax habe ich die Erfahrung gemacht, dass das von Yii verwendete Verfahren zur ID Vergabe zu Problemen führen kann.

Wenn man einen ganzen Container per ajax austauschen möchte führt die Standard ID Vergabe dazu, das Yii beim Ajax Request der ID Zaehler wieder von 0 anfängt. z.b yw0, yw1 etc. Dieser Container wird dann mit der ID yw0 wieder in die eigentliche Seite gespeist, was dazu für das yw0 2 mal im HTML Code vorhanden ist und ein weitere Request per Ajax nicht mehr funktioniert, da jQuery keine eindeutige Zuordnung treffen kann.

Um dem entgegenzuwirken kann man entweder nur den Inhalt des Containers austauschen oder aber eine andere Art der ID Vergabe wählen.

Ich persönlich finde die andere ID Vergabe besser, da ich meine Widgets sowohl im Ajax als auch im normalen Context verwenden möchte ohne die Views oder die Funktionalität daran anpassen zu müssen.

Wenn also der zweite Ajax mal nicht funktioniert, denkt an meine Worte :)
0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users