php.de

Zurück   php.de > Webentwicklung > JavaScript, Ajax und mehr

JavaScript, Ajax und mehr dynamisches Scripten und Interaktion auf Clientebene

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 01.08.2011, 15:33  
Erfahrener Benutzer
 
Benutzerbild von Sniper_Kotaro
 
Registriert seit: 04.03.2009
Beiträge: 303
PHP-Kenntnisse:
Anfänger
Sniper_Kotaro ist zur Zeit noch ein unbeschriebenes Blatt
Standard Checkboxen checken, deren Namen bestimmte Strings enthalten

Hallo!

Ich bin momentan dabei etwas umzusetzen.
Und zwar geht es um eine Liste, die Checkboxen enthält.
Die Einträge der Liste sind hierarchisch geordnet.
Schaut hier, was ich meine:

So, jetzt geht es darum, dass wenn die PLZ (ganz oben) gecheckt ist, alle untergeordneten Datensätze auch angecheckt werden sollen, also Ort, Straße und (hier nicht mit Nummer zu sehen) Hausnummer.
Die Input-Tags all dieser unterschiedlichen Ebenen haben folgendes Namensschema (als name-attribut des Tags):
PLZ = PLZ
Ort = PLZ + Ort
Straße = PLZ + Ort + Straße
(Hausnummer ist hier für meine Zwecke nicht relevant)

Jede der Ebenen ruft auch eine eigene JS-Funktion auf, hier ein Beispiel:
Code:
function checkByPLZ(plz){
	document.getElementsByName('NGD_PLZ:#' + plz)[0].checked = true;
}
Jetzt ist das Problem, dass natürlich der Code, der ausgeführt, hier noch nicht richtig ist.
Denn dieser Code würde besagen "Checke alles, was genau diese PLZ als Namen hat".
Er lässt natürlich beispielsweise die Ort-Ebene aus, weil diese nicht nur PLZ, sondern auch den Ort im name-Attribut hat.
Ich habe überlegt, ob man an dieser Stelle mit RegEx arbeiten könnte, dann aber leider festgestellt, dass document.getElementsByName keine RegEx unterstützt.

Hatte zufällig schonmal jemand von euch dieses Problem?
Oder eine gute Idee, wie ich dieses Problem gut in den Griff kriege?
Wie gesagt, RegEx funktionieren scheinbar LEIDER nicht (das hätte sicherlich vieles erleichtert )
__________________
Sniper_Kotaro ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 01.08.2011, 15:48  
Moderator¹
 
Registriert seit: 28.03.2010
Beiträge: 7.470
PHP-Kenntnisse:
Fortgeschritten
ChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer Anblick
Standard

Wenn du das im HTML vernünftig strukturiert hast, dann sind die in Frage kommenden Checkboxen alle Nachfahrenelemente eines bestimmten Elements, bspw. einer untergeordneten UL.

Und getElementsBy(Tag)Name lassen sich nicht nur auf document-Ebene anwenden, sondern auch „auf“ einem bestimmten HTML-Elementknoten.
__________________
RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
ChrisB ist offline   Mit Zitat antworten
Alt 01.08.2011, 15:57  
Erfahrener Benutzer
 
Benutzerbild von Sniper_Kotaro
 
Registriert seit: 04.03.2009
Beiträge: 303
PHP-Kenntnisse:
Anfänger
Sniper_Kotaro ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hm, ui ui ui... @ .@
Das Problem ist, dass diese Liste leider nicht mit ul/ol aufgebaut ist, sondern mit einem Framework über Javascript.
Von daher kann ich leider garnicht genau sagen, wie das an welchem Knoten hängt
__________________
Sniper_Kotaro ist offline   Mit Zitat antworten
Alt 01.08.2011, 15:58  
Moderator¹
 
Registriert seit: 28.03.2010
Beiträge: 7.470
PHP-Kenntnisse:
Fortgeschritten
ChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer Anblick
Standard

Dann nimm dir einen DOM-Inspektor wie bspw. den von Firebug, und finde es heraus ...!
__________________
RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
ChrisB ist offline   Mit Zitat antworten
Alt 01.08.2011, 15:58  
Erfahrener Benutzer
 
Registriert seit: 01.09.2010
Beiträge: 4.561
PHP-Kenntnisse:
Fortgeschritten
eagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Mensch
Standard

andererseits musst du doch nur nach der Zeichenkette "suchen", die dem angehakten Feld entspricht

Kreuz bei PLZ -> markiere alles, was mit dieser PLZ beginnt

Kreuz bei Ort -> markiere alles, was mit dessen PLZ+ORT beginnt (laut deiner Angabe beginnen die ja so)
und so weiters ....
__________________
"Irren ist männlich", sprach der Igel und stieg von der Drahtbürste
eagle275 ist offline   Mit Zitat antworten
Alt 01.08.2011, 16:06  
Erfahrener Benutzer
 
Benutzerbild von Sniper_Kotaro
 
Registriert seit: 04.03.2009
Beiträge: 303
PHP-Kenntnisse:
Anfänger
Sniper_Kotaro ist zur Zeit noch ein unbeschriebenes Blatt
Standard

@ChrisB: Ich werde mal nachschauen, ob ich damit was rausfinde.

@eagle: genau so ist es. Nur weiß ich nicht, wie ich danach "suchen" soll
Denn document.getElementBy.... funktioniert ja so, dass es den kompletten String will und sucht.
Ist der Suchstring nun z.B. "32051" (also die PLZ) würde er doch schon "32051Eikum" (siehe Screenshot oben) nicht mehr finden
__________________
Sniper_Kotaro ist offline   Mit Zitat antworten
Alt 01.08.2011, 16:16  
Erfahrener Benutzer
 
Registriert seit: 01.09.2010
Beiträge: 4.561
PHP-Kenntnisse:
Fortgeschritten
eagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Mensch
Standard

sicher - wenn du getElementby nimmst - aber du kannst doch die einzelnen Elemente auch per Hand durch traversieren - geh zum body-Element (getElementbyTagName) - dann kannst du es als HTML DOM HTMLElement Object behandeln - und das kennt dann die "üblichen" Methoden .. firstChild / nextSibling - darüber kannst du dann per Hand deinen Vergleich machen - natürlich nicht so performant - aber es geht...
http://www.w3schools.com/jsref/dom_obj_all.asp
__________________
"Irren ist männlich", sprach der Igel und stieg von der Drahtbürste
eagle275 ist offline   Mit Zitat antworten
Alt 01.08.2011, 16:22  
Moderator¹
 
Registriert seit: 28.03.2010
Beiträge: 7.470
PHP-Kenntnisse:
Fortgeschritten
ChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer Anblick
Standard

Wozu denn ... einfach nicht getElementsByName verwenden, sondern getElementsByTagName.
Wenn außer Checkboxen noch andere Input-Elemente in dieser Stelle im Teilbaum hängen, dann muss man den Typ halt beim durchlaufen dieser Nodes noch mal extra betrachten.
__________________
RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
ChrisB ist offline   Mit Zitat antworten
Alt 01.08.2011, 16:27  
Erfahrener Benutzer
 
Registriert seit: 01.09.2010
Beiträge: 4.561
PHP-Kenntnisse:
Fortgeschritten
eagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Mensch
Standard

bleibt aber dabei, dass er den eigentlichen Vergleich auf den "Name" per Hand machen muss, weil getElementsbyTagName ihm nunmal alle <input-Elemente liefert .....
__________________
"Irren ist männlich", sprach der Igel und stieg von der Drahtbürste
eagle275 ist offline   Mit Zitat antworten
Alt 01.08.2011, 16:34  
Moderator¹
 
Registriert seit: 28.03.2010
Beiträge: 7.470
PHP-Kenntnisse:
Fortgeschritten
ChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer Anblick
Standard

Zitat:
Zitat von eagle275 Beitrag anzeigen
bleibt aber dabei, dass er den eigentlichen Vergleich auf den "Name" per Hand machen muss
Bin nach wie vor der Ansicht, dass der Zugriff auf den Namen bei einer vernünftigen (DOM-)Struktur ersatzlos entfallen kann.
__________________
RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
ChrisB ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
string darf nur bestimmte zeichen enthalten nco2k PHP Tipps 2010 2 25.01.2010 22:10
Checkboxen mit dynamischen Namen Werkler PHP Tipps 2006 7 11.04.2006 11:35
[Erledigt] bestimmte Namen für Tabellen verboten? Datenbanken 3 05.08.2005 09:31
Checkboxen mit einer Checkbox checken :) Igäl HTML, Usability und Barrierefreiheit 3 14.07.2005 14:19
String darf nur bestimmte Zeichen enthalten PHP Tipps 2004 5 05.09.2004 23:05
Problem beim abfragen mehrere checkboxen mit gleichem namen PHP Tipps 2004 7 21.07.2004 18:57

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
checkboxen checken, javascript check all mit unterschiedlichen namen, check ob string vorhanden ist php, php string aus checkboxen, wie finde ich in asp raus ob etwas in einem string enthalten ist

Alle Zeitangaben in WEZ +2. Es ist jetzt 11:23 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum