Forum Doku Wiki Blog

Forumsarchiv 2004, Mai
Eingabefelder mit gleichem Namen?

archivierte Beiträge lesen

  1. (HTML) Eingabefelder mit gleichem Namen? von Sandburg, 03. 05. 2004, 12:26

Eingabefelder mit gleichem Namen?

Der folgende Beitrag wurde am 03. 05. 2004, 12:26 Uhr von Sandburg veröffentlicht.

Moin

ich habe in einem Formular einige Eingabe felder und möchte, dass die als Array an PHP übergeben werden. Kann ich deshalb allen den gleichen Namen geben, dalos zb. 'diefelder[]' oder haben Browser Probleme damit?

Bye the Sandburg

Eingabefelder mit gleichem Namen?

Der folgende Beitrag wurde am 03. 05. 2004, 15:54 Uhr von Mho veröffentlicht.

> Moin
>
> ich habe in einem Formular einige Eingabe felder und möchte, dass die als Array an PHP übergeben werden. Kann ich deshalb allen den gleichen Namen geben, dalos zb. 'diefelder[]' oder haben Browser Probleme damit?
>
> Bye the Sandburg

hmm Ich habe in einem dynamisch erzeugtem HTML File etliche DIV Tags mit der gleichen ID.
Die Browser nummerieren diese automatisch in einem Array durch, wie normale Tags auch.
Ein Zugriff ist dann z.B. mit idname[5] möglich.
Ich nehme mal an das eine Unterscheidung bei Eingabefeldern von den Browsern genauso gehandhabt wird.

Grüsse Mho

Eingabefelder mit gleichem Namen?

Der folgende Beitrag wurde am 04. 05. 2004, 12:10 Uhr von Cybaer veröffentlicht.

Hi,

> hmm Ich habe in einem dynamisch erzeugtem HTML File etliche DIV Tags mit der gleichen ID.

Oh je.


> Die Browser nummerieren diese automatisch in einem Array durch, wie normale Tags auch.

Also
 <div id="MassenID">0</div>
 <div id="MassenID">1</div>
 <div id="MassenID">2</div>
?

> Ein Zugriff ist dann z.B. mit idname[5] möglich.

So a la alert(document.MassenID[1].innerHTML); gibt dann "1" aus? Und *das* soll in allen Browsern (na ja zumindest im IE, Mozilla, Opera und Konqueror) funktionieren? =:-o


Gruß, Cybaer

--
Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!

Eingabefelder mit gleichem Namen?

Der folgende Beitrag wurde am 04. 05. 2004, 15:40 Uhr von Mho veröffentlicht.

> Also
> <div id="MassenID">0</div>
> <div id="MassenID">1</div>
> <div id="MassenID">2</div>
> ?
>
> So a la alert(document.MassenID[1].innerHTML); gibt dann "1" aus? Und *das* soll in allen Browsern (na ja zumindest im IE, Mozilla, Opera und Konqueror) funktionieren? =:-o
>


Sagen wir mal ich habe es mit Mozilla un Internetexplorer getestet
IE
document.all.MassenID[i].style.display
DOM
document.getElementsByName("MassenID")[i].style.display

COOL was?

Die Browser können mehr als man denkt

grüsse Mho

Eingabefelder mit gleichem Namen?

Der folgende Beitrag wurde am 05. 05. 2004, 09:11 Uhr von Cybaer veröffentlicht.

Hi,

> Sagen wir mal ich habe es mit Mozilla un Internetexplorer getestet
> IE

Dann fehlen noch 2 und es sind die wichtigsten aktuellen Browser abgedeckt - nicht natürlich zukünftige. :-)


> document.all.MassenID[i].style.display
> DOM
> document.getElementsByName("MassenID")[i].style.display

Und dir fällt da nichts auf? :-o


> COOL was?

Ja, ist häufig die jugendliche Bezeichnung für "leichtsinnig" ... :)

Mit ca. 10 Jahren Web-Design auf dem Buckel (davon ca. 9 mit JavaScript), bin ich mit "cool" etwas vorsichtig. ;-)


> Die Browser können mehr als man denkt

Nein, manche Brower sind vielleicht fehler- (und/oder standard-)toleranter als andere. Und eine browserübergreifende Zugriffsmöglichkeit auf diese üble Vergewaltigung des ID-Attributes sehe ich gerade auch nicht. =:-o

Und da es dafür ohnehin keinen Anwendungszweck gibt (es gibt ja mehrere legale und auch halb-legale Alternativen, ohne HTML zu vergewaltigen), sollte man es auch besser getrost vergessen ... 8->


Gruß, Cybaer

--
Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!

Eingabefelder mit gleichem Namen?

Der folgende Beitrag wurde am 05. 05. 2004, 10:38 Uhr von Mho veröffentlicht.

leichtsinnig?
naja

aber das jugentlich nehme ich mal als kompliment

Das macht insgesammt aber schon Sinn und ist wohl auch keine Fehlertoleranz.

Ich nehme mal an das alle Elemente als Array dargestellt werden.
Das wird mit den Tags auch gerne verwendet.

Den Schritt das auch ID Namen als Array verwaltet werden ist nicht so abwegig, da der Zugriff sicherlich äquivalent implementiert wurde.

Einen Anwendungsfall hatte ich durchaus
xsl Umwandlung einer XML bei der Blöcke erzeugt werden deren sichtbarkeit vom Beutzer an und ausgeschaltet werden kann.
Die Id habe ich immer gleich erzeugt und konnte über das Array trotzdem auf einen Block zugreifen. Ohne über XSL die Blöcke in der ID durchnummerieren zu müssen. Das hätte ich sonst in den Eventfunktionen auch machen müssen, was recht unübersichtlich ist.
So merke ich mir einfach eine Nummer im Javascript und habe in den Eventfunktionen die Variable stehen.
Beispiel:
<img id="name"  src="Bild.jpg" onclick="machwas();" onMouseover="funktion1('name[count]');" onMouseout="funktion2('name[count]');"

Und für Netscape werde ich das auch noch austesten....
Hatte noch keine Zeit.

Grüsse Mho

Eingabefelder mit gleichem Namen?

Der folgende Beitrag wurde am 05. 05. 2004, 12:15 Uhr von Cybaer veröffentlicht.

Hi,

> leichtsinnig?
> naja

Kann funktionieren, kann auch nicht. Also ich finde das leichtsinnig. =:-)

Na ja, war ja ohnehin nix mit "browserübergreifend" ...


> aber das jugentlich nehme ich mal als kompliment

:-)) OK, Altersdemenz! ;->


> Das macht insgesammt aber schon Sinn und ist wohl auch keine Fehlertoleranz.

Stimmt, eher "Fehlverhalten". Denn da wird das Verhalten des alten NAME-Attributs (W3C: nicht eindeutig -> getElementsByName) mit dem des (auch) als "Ersatz" vorgesehenen neuen ID-("Universal-")Attributs (W3C: eindeutig -> getElementByName - man beachte auch Einzahl/Mehrzahl) durcheinander gewürfelt. Meiner Erfahrung nach gibt es für dieses Durcheinanderwürfeln aber keine Browserübergreifend einheitliche Vorgehensweise (selbst Elementübergreifend klappt es nicht) ...


> Einen Anwendungsfall hatte ich durchaus

Ich schrieb von *anderen* Lösungswegen ohne HTML zu vergewaltigen! =8-> Daß es Anwendungsfälle und somit Bedarf für eine Lösung gibt, ist schon klar. 8-)

Du kannst z.B. nur auf Beginn der ID abfragen (id="name1", id="name2") oder in XML ein eigenes Atribut GID (Group-ID) definieren (welches von HTML-Browsern ignoriert, von deren XML-fähigen JS-Engines aber bearbeitet werden kann).

Beide Varianten findest Du z.B. in http://Coding.vampirehost.de/Toggle, wo es eben genau um das Thema geht, wie man auf einen Schlag mehrere Elemente zugleich verarbeiten kann (jedenfalls was ihre Darstellung angeht).


Gruß, Cybaer

--
Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!

Eingabefelder mit gleichem Namen?

Der folgende Beitrag wurde am 05. 05. 2004, 13:51 Uhr von Mho veröffentlicht.

Gut gut
Ich habe mich mal durch die für diesen Fall relewanten Quellen gelesen

W3c html 4.01 Spezifikation
W3c xhtml spezifikation
w3c dtd für xhtml im strict modus
w3c DOM2 Spezifikation


und ich kann nun sicher behaupten:

Du hast recht.

html 4.01 gibt für ID Namen eine Eindeutigkeit vor
dom2 sagt folgendes:
getElementById introduced in DOM Level 2
Returns the Element whose ID is given by elementId. If no such element exists, returns null. Behavior is not defined if more than one element has this ID.

Allerdings kann man noch erwähnen das die ATTLIST Einträge der DTD für XHTML strict das von ihrem Aufbau her nicht verbieten würden

Aus XML Sicht wäre das also zulässig.
Aus Browsersicht nicht.

Immerhin funktioniert es und warum nicht ab und an etwas am script ändern? ... Solange das kein Kundenauftrag war.

Wieder etwas dazu gelernt.

grüsse Mho

Eingabefelder mit gleichem Namen?

Der folgende Beitrag wurde am 06. 05. 2004, 16:23 Uhr von Cybaer veröffentlicht.

Hi,

> Aus XML Sicht wäre das also zulässig.
> Aus Browsersicht nicht.
> Immerhin funktioniert es und warum nicht ab und an etwas am script ändern?

Mindestens der Opera wird die Grätsche machen ... 8-)


> ... Solange das kein Kundenauftrag war.

Und wenn, wäre es immer noch deutlich besser, als was sonst mitunter so abgeliefert wird. >;->


Gruß, Cybaer

--
Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!

© 1998-2013 SELFHTMLImpressumSoftware: Classic Forum 3.4