var in for schleife in pfad
aetzchen
- javascript
Hallo bin absoluter Neuling und sitze erst seit gestern an Javascript weil es meines erachtes die vernüpftigste Lösung für ein prob. ist welches ich hab.
Leider ärger ich mich über mein Script scharz. Ich weiß zwar wo das Problem liegt mir fehlen aber die Kenntnisse das Problem zu beheben und google konnte auch nicht helfen.
Hier mal mein Script (bis jetzt)
<SCRIPT>
var zweiday<?=$i?>=0
var einday<?=$i?>=0
function checkmax<?=$i?>(){
if (document.order.kticket<?=$i?>.options[1].selected == true){
for(var c=1; c<3; c++){
if( document.order.dsp[c]<?=$i?>.checked == true) {zweiday<?=$i?>++;}
}
}
if (zweiday<?=$i?> >= 2){
for(var j=1; j<3; j++){
if (document.order.dsp[j]<?=$i?>.checked == false) {
document.order.dsp[j]<?=$i?>.checked = true;}
}
}
}
function deselect<?=$i?>(){
var boxes = new Array();
for (var i = 0; i < 3; i++) {
boxes[i] = document.getElementById("box<?=$i?>"+i);
if (document.order.kticket<?=$i?>.options[0].selected == true) {
boxes[i].checked = true
boxes[i].disabled = true;
}
else {
boxes[i].checked = false
boxes[i].disabled = false;
}
}
}
</SCRIPT>
Ich weiß das das Prob. hier liegt
document.order.dsp[c]<?=$i?>.checked == true
bei [c] und auch [j]
Gibt es eine Möglichkeit das so zu schreiben?
Danke für hilfe.
Ich weiß das das Prob. hier liegt
document.order.dsp[c]<?=$i?>.checked == true
bei [c] und auch [j]
Ich nehme mal an $i ist eine php variable. Das resultiert dann in
document.order.dsp[c]2.checked ...
und das kracht natürlich, da dsp[c]2 kein gültiger identifier ist. Mir ist nicht klar, was du machen willst, vielleicht beschreibst es mal näher.
Und bitte trenne PHP von JavaScript... Das ist so unleserlich... Wer soll so einen Code warten?
Gruß!
Hallo danke erst mal für die Antwort.
Jup $i ist ne php var.
for(var j=1; j<3; j++){
if (document.order.dsp[j]<?=$i?>.checked == false) {
document.order.dsp[j]<?=$i?>.checked = true;}
}
Also das mit php ist nicht das Problem das kommt an. Ich weiß nicht wie ich die Variable J aus der schleife in den Bezeichner einbaue.
Das heißt
j=1
document.order.dsp11.checked == false
j=2
document.order.dsp21.checked == false
j=3
document.order.dsp31.checked == false
etc.
Wie gesagt bin neu in der Materie JS. [j] war nur ein Platzhalter. Das einzige was ich gefunden hab war " + j + " und das funktioniert leider nicht".
Ich will also das in der Schleife der Bezeichner in der ersten Stelle der Zahl hochgezählt wird.
Danke und Gruß.
Mahlzeit,
for(var j=1; j<3; j++){
if (document.order.dsp[j]<?=$i?>.checked == false) {
document.order.dsp[j]<?=$i?>.checked = true;}
}
Also das mit php ist nicht das Problem das kommt an. Ich weiß nicht wie ich die Variable J aus der schleife in den Bezeichner einbaue.
Du zeigst ja leider nicht Deinen HTML-Code, aber wenn ich davon ausgehe, dass es um den Zugriff auf Elemente innerhalb eines Formulars geht, solltest Du Dir vielleicht mal http://de.selfhtml.org/javascript/objekte/elements.htm@title=elements anschauen. Dann könntest Du
document.order.dsp11.checked == false
nämlich stattdessen so
document.forms['order'].elements['dsp11'].checked == false;
schreiben (was IMHO erheblich besser ist). Außerdem könntest Du dann Deine Zugriffe innnerhalb der Schleife so
document.forms['order'].elements['dsp' + j + '[code lang=php]<?=$i?>
'].checked == false;[/code]
schreiben.
Wie gesagt bin neu in der Materie JS.
Das ist ja kein Problem. <http://de.selfhtml.org/javascript/intro.htm@title=Lies Dich einfach mal ein> und lerne die Suchefunktion innerhalb von SELFHTML und hier im Forum kennen ... :-)
Das einzige was ich gefunden hab war " + j + " und das funktioniert leider nicht".
Tut es schon - man muss es nur richtig einsetzen.
MfG,
EKKi
Hallo aetzchen,
for(var j=1; j<3; j++){
if (document.order.dsp[j]<?=$i?>.checked == false) {
document.order.dsp[j]<?=$i?>.checked = true;}
}
das heißt, das $i kommt von php, das j von Javascript?
Kommt mir ziemlich wirr vor.
Daten von php an js würde ich entwerder über unsichbare html-formularelemente oder einfache var-Deklararationen übergeben. Z.B.:
var js_bla = <?=$php_bla?>;
var js_foo = <?=$php_foo?>;
usw. am Anfang vom JS. Wobei ich in den meisten Fällen das JS statisch machen und auslagern würde. Wegen caching usw.
Ansonsten müssten EKKis Hinweise dich weiterbringen.
Jonathan