aetzchen: var in for schleife in pfad

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.

  1. 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ß!

    1. 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ß.

      1. 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

        --
        sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
      2. 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