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 21.07.2010, 17:36   #1 (permalink)
Benutzer
 
Registriert seit: 19.10.2009
Beiträge: 69
PHP-Kenntnisse:
Anfänger
alex9787 ist zur Zeit noch ein unbeschriebenes Blatt
Standard [Erledigt] nicht alle werden gechecked

Hallo,

ich würde gerne alle checkboxen nach funktionsstart auf true setzen. leider wird nur die erste berücksichtigt, der rest nicht. hier erstmal mein code:

Code:
<script type="text/javascript">
	function alle () {
	  document.getElementById("checkbox").checked = true;
	}
</script>
<form name="form" action="">
	<input type="checkbox" id="checkbox" name="1" >
	<input type="checkbox" id="checkbox" name="2" >
	<input type="checkbox" id="checkbox" name="3" >
	<input type="checkbox" id="checkbox" name="4" ><br>
	<div type="button" onclick="alle()">alle</div>
</form>
Ich muss in meinem fall mit ids arbeiten, da name bereits von php verwendet wird und die id der mail beinhaltet. also immer verschieden ist. (name="$n" > 231, 268, 310, ...). Aber wen JS auch das hinbekommt, zum beispiel mit einer schleife in einer funktion, würd ich auch name nutzen. zum beispiel sowas:
for( var i = 0;i<1000;i++){
document.form.+i+.checked=true;} oder so xD

aber erstmal die id, warum werden nicht alle gechecked sondern nur die erste? danke schomal.
alex9787 ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 21.07.2010, 17:43   #2 (permalink)
Supermoderator
 
Benutzerbild von Manko10
 
Registriert seit: 16.03.2008
Beiträge: 6.749
PHP-Kenntnisse:
Fortgeschritten
Manko10 ist ein wunderbarer AnblickManko10 ist ein wunderbarer AnblickManko10 ist ein wunderbarer AnblickManko10 ist ein wunderbarer AnblickManko10 ist ein wunderbarer AnblickManko10 ist ein wunderbarer AnblickManko10 ist ein wunderbarer AnblickManko10 ist ein wunderbarer Anblick
Standard

Eine ID heißt deshalb ID, weil sie eine IDentifikation erlaubt, das heißt auch, dass eine ID auf einer Seite einmalig sein muss und nur bei einem Element vorkommen kann.
Was du suchst, ist getElementsByTagname('input') mit der Prüfung, ob das Attribut type den Wert "checkbox" hat. Nicht getElementById().
__________________
Take your Linux to the next level with Refining Linux!
Manko10 ist offline   Mit Zitat antworten
Alt 21.07.2010, 17:47   #3 (permalink)
Moderator
 
Benutzerbild von Asipak
 
Registriert seit: 18.07.2005
Beiträge: 2.837
Asipak befindet sich auf einem aufstrebenden Ast
Standard

... (Codeschnipsel rauseditiert) sorry, habs mir überlegt, nicht der Sinn des Forums ...
__________________
Das PHP.DE Coding-Quiz | HalloPHP
Asipak ist offline   Mit Zitat antworten
Alt 21.07.2010, 17:47   #4 (permalink)
Moderator
 
Registriert seit: 28.03.2010
Beiträge: 1.966
PHP-Kenntnisse:
Fortgeschritten
ChrisB sorgt für eine eindrucksvolle AtmosphäreChrisB sorgt für eine eindrucksvolle AtmosphäreChrisB sorgt für eine eindrucksvolle Atmosphäre
Standard

Zitat:
Zitat von alex9787 Beitrag anzeigen
Ich muss in meinem fall mit ids arbeiten
Du darfst aber nicht so mit IDs arbeiten, weil HTML das schlicht und einfach nicht erlaubt - eine ID muss dokumentweit eindeutig sein.

Zitat:
aber erstmal die id, warum werden nicht alle gechecked sondern nur die erste?
Wegen der nötigen Eindeutigkeit einer ID ist auch die Methode getElementById natürlich darauf ausgelegt, genau ein Element zurück zu liefern.

Wenn du mit mehreren Elementen etwas machen willst - dann brauchst du eine Schleife.


Gehe bitte folgendermaßen vor:
1. Lerne Grundlagen von HTML
2. Lerne Grundlagen von JavaScript
3. (optional) Frage hier wieder nach, wenn du noch weitere Probleme damit hast - aber erst dann, wenn du Schritt 1. und 2. abgearbeitet hast!
__________________
RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
ChrisB ist offline   Mit Zitat antworten
Alt 21.07.2010, 17:51   #5 (permalink)
Supermoderator
 
Benutzerbild von Manko10
 
Registriert seit: 16.03.2008
Beiträge: 6.749
PHP-Kenntnisse:
Fortgeschritten
Manko10 ist ein wunderbarer AnblickManko10 ist ein wunderbarer AnblickManko10 ist ein wunderbarer AnblickManko10 ist ein wunderbarer AnblickManko10 ist ein wunderbarer AnblickManko10 ist ein wunderbarer AnblickManko10 ist ein wunderbarer AnblickManko10 ist ein wunderbarer Anblick
Standard

Du nimmst auch kein Blatt vor den Mund, oder?
__________________
Take your Linux to the next level with Refining Linux!
Manko10 ist offline   Mit Zitat antworten
Alt 21.07.2010, 17:52   #6 (permalink)
Moderator
 
Benutzerbild von Asipak
 
Registriert seit: 18.07.2005
Beiträge: 2.837
Asipak befindet sich auf einem aufstrebenden Ast
Standard

Wo er Recht hat...
__________________
Das PHP.DE Coding-Quiz | HalloPHP
Asipak ist offline   Mit Zitat antworten
Alt 21.07.2010, 17:55   #7 (permalink)
Benutzer
 
Registriert seit: 19.10.2009
Beiträge: 69
PHP-Kenntnisse:
Anfänger
alex9787 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hey super danke dir. hab mich ma in js eingelesen aber getelementbytagname war mir noch unbekannt =)

ich musste nur noch ne schleife einbinden und so werden alle nun gechecked =)
Code:
function alle () {
		for(var i = 0; i<100;i++){
	  document.getElementsByTagName("input")[i].checked = true;
	  }
	  
	}
danke dir.
alex9787 ist offline   Mit Zitat antworten
Alt 21.07.2010, 17:56   #8 (permalink)
Supermoderator
 
Benutzerbild von Manko10
 
Registriert seit: 16.03.2008
Beiträge: 6.749
PHP-Kenntnisse:
Fortgeschritten
Manko10 ist ein wunderbarer AnblickManko10 ist ein wunderbarer AnblickManko10 ist ein wunderbarer AnblickManko10 ist ein wunderbarer AnblickManko10 ist ein wunderbarer AnblickManko10 ist ein wunderbarer AnblickManko10 ist ein wunderbarer AnblickManko10 ist ein wunderbarer Anblick
Standard

Zitat:
aber getelementbytagname war mir noch unbekannt
getElementsByTagname()! Man beachte den Plural (im Gegensatz zu getElementById()).
Im Übrigen wäre es sinnvoller, die Funktion einmal vor der Schleife aufzurufen anstatt zig mal innerhalb. Unnötiger Overhead, außerdem kannst du damit gleich die Menge an Schleifendurchläufen festlegen.
Code:
function alle () {
    var checkboxes = document.getElementsByTagName("input");
    for(var i = 0; i < checkboxes.length; i++){
        checkboxes[i].checked = true;
    }
}
__________________
Take your Linux to the next level with Refining Linux!
Manko10 ist offline   Mit Zitat antworten
Alt 21.07.2010, 17:57   #9 (permalink)
Moderator
 
Benutzerbild von Asipak
 
Registriert seit: 18.07.2005
Beiträge: 2.837
Asipak befindet sich auf einem aufstrebenden Ast
Standard

Wobei die Funktion noch praktischer wäre, würdest du die Checkboxen vorher zählen, sonst musst du bei einer Wiederverwendung des Scripts jedesmal die Anzahl der Schleifendurchläufe ändern. Bei einer Anwendung, bei der sich die Anzahl der Checkboxen dynamisch ändern kann, müsstest du mit diesem Schnipsel bereits ganz aufgeben.

Gruß

[edit] Hey Manko, da hast du jetzt aber drübereditiert
__________________
Das PHP.DE Coding-Quiz | HalloPHP

Geändert von Asipak (21.07.2010 um 18:02 Uhr).
Asipak ist offline   Mit Zitat antworten
Alt 21.07.2010, 17:59   #10 (permalink)
Moderator
 
Registriert seit: 28.03.2010
Beiträge: 1.966
PHP-Kenntnisse:
Fortgeschritten
ChrisB sorgt für eine eindrucksvolle AtmosphäreChrisB sorgt für eine eindrucksvolle AtmosphäreChrisB sorgt für eine eindrucksvolle Atmosphäre
Standard

[OT]
Zitat:
Zitat von Manko10 Beitrag anzeigen
Du nimmst auch kein Blatt vor den Mund, oder?
In Bezug auf was hätte ich das tun sollen ...?

Das Grundlagenwissen über HTML fehlt, ist aus der Problembeschreibung offensichtlich.

Und dass es absolut unsinnig ist, auf defektem HTML überhaupt mit JavaScript arbeiten zu wollen, ist auch ein verbreiteter Erfahrungswert.

Deshalb kann die Empfehlung hier nur lauten: Lerne Grundlagen, und zwar in der angegebenen Reihenfolge.

Und das bringe ich lieber deutlich zum Ausdruck, als mit so viel Zucker verkleistert, dass der Frager dann doch wieder nur nach einer Reparatur seines defekten Codes zu fragen geneigt ist - selbst wenn wir die für ihn vornehmen, hilft ihm das nämlich auf Dauer nicht weiter, das nächste Problem gleicher Bauart kommt dann bestimmt.


Bei sämtlichen clientseitigen Problemen gilt: Immer zuerst validen Code (HTML/CSS) herstellen, bevor man überhaupt mit der Problemanalyse weiter macht.
[/OT]
__________________
RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
ChrisB ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

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


Alle Zeitangaben in WEZ +2. Es ist jetzt 17:49 Uhr.




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