Markus: mehrere werte einer variablen in einer schleife zuweisen.

Hi @all

ich habe eine for schleife in der es die varible xxx gibt. diese liest alle optionen eines select-feldes aus.

nun möchte ich alle werte der auswahlliste ausgeben, er gibt mir aber nur den letzten wert der auswahlliste wieder, was ja auch logisch ist weil er die variable xxx bei jedem durchgang mit dem gerade ausgelesen wert überschreibt.

nun meine frage:

ist es wie in php möglich oder so ähnlich

<?php
for($x=1;$x<=5;$x++)
{
$xxx.=$x;
}

echo"$xxx";
?>

ausgabe:
12345

einer variablen mehrere werte zuzuweisen? bekomme das mit javascript nicht hin. :(

  1. hi,

    bekomme das mit javascript nicht hin. :(

    dort lautet der operator zur string-verkettung +, nicht punkt.

    gruß,
    wahsaga

    --
    "Look, that's why there's rules, understand? So that you _think_ before you break 'em."
    1. hi,

      bekomme das mit javascript nicht hin. :(

      dort lautet der operator zur string-verkettung +, nicht punkt.

      gruß,
      wahsaga

      nun das hatte ich als erstes ausprobiert, macht er aber nicht.

      for (i=0;i<document.xxx.xxx.length;i++)
        {
          if (document.xxx.xxx.options[i].selected)
          {
            selected_value+=document.xxx.xxx.options[i].value;
          }
        }

      1. hi,

        for (i=0;i<document.xxx.xxx.length;i++)

        warum fragst du hier auf die "länge" von document.xxx.xxx ab, wenn du hier

        if (document.xxx.xxx.options[i].selected)

        dann auf document.xxx.xxx.options mit dem dadurch nach oben hin begrenzten index i zugreifst?

        gruß,
        wahsaga

        --
        "Look, that's why there's rules, understand? So that you _think_ before you break 'em."
        1. hi,

          for (i=0;i<document.xxx.xxx.length;i++)

          warum fragst du hier auf die "länge" von document.xxx.xxx ab,

          nun ich möchte ja die durchläufe der for-schleife begrenzen ?!?!

          wenn du hier

          if (document.xxx.xxx.options[i].selected)

          dann auf document.xxx.xxx.options mit dem dadurch nach oben hin begrenzten index i zugreifst?

          hier sollen dann nur die ausgewählten optionen weitergegeben werden.

          aber ich denke das ist ja nicht das problem, der schuh drückt doch woanders. könnten wir wieder darauf zurückkommen?

      2. for (i=0;i<document.xxx.xxx.length;i++)
          {
            if (document.xxx.xxx.options[i].selected)
            {
              selected_value+=document.xxx.xxx.options[i].value;
            }
          }

        Nun, erst einmal stimmt der wahsaga Einwand, daß die Schleife uU unnötig oft durchlaufen wird, nämlich immer dann, wenn options[i] eben nicht selected ist; nichtsdestotrotz müßte selected_value immer um einen selectierten Eintrag ergänzt werden. In der Schleife ist soweit kein Fehler, die Syntax ist auch richtig, kann eigentlich nur die Bedingung nicht erfüllt sein ...

        1. Nun, erst einmal stimmt der wahsaga Einwand, daß die Schleife uU unnötig oft durchlaufen wird, nämlich immer dann, wenn options[i] eben nicht selected ist;

          dann mach doch bitte mal einen anderen vorschlag wie man es lösen könnte?!?!

          nichtsdestotrotz müßte selected_value immer um einen selectierten Eintrag ergänzt werden. In der Schleife ist soweit kein Fehler, die Syntax ist auch richtig, kann eigentlich nur die Bedingung nicht erfüllt sein ...

          nun die Bedingung stimmt 100%ig da ich es auch in anderen funktionen so überprüfe, nur noch nie dieses problem hatte. sobald ich auch das plus wieder entferne geht es, nur wird mir dann halt der zu letzt ausgelesene selektierte wert ausgegeben.

          1. Ich denke, ich habs; in Javascript mußt Du die Variable initialisieren, ehe Du sie inkrementierst; soll heissen, du mußt noch vor der Schleife:

            selected_value="";

            setzen, sonst gibts einen js-Fehler...

            1. Ich denke, ich habs; in Javascript mußt Du die Variable initialisieren, ehe Du sie inkrementierst; soll heissen, du mußt noch vor der Schleife:

              selected_value="";

              setzen, sonst gibts einen js-Fehler...

              Jep vielen Dank, klappt.

      3. nun das hatte ich als erstes ausprobiert, macht er aber nicht.

        for (i=0;i<document.xxx.xxx.length;i++)
          {
            if (document.xxx.xxx.options[i].selected)

        Wir reden von einem Mutliselectfeld, oder?
        (Das hättest du zumindest erwähnen sollen, denn bei einfachen kommt man ja mit selectedIndex direkt an den Wert)

        {
              selected_value+=document.xxx.xxx.options[i].value;

        Wie schon erwähnt solltest du selected_value vorher als (Leer)String initialisieren (muss man das in PHP nicht? diese Sprache wird mir immer suspekter)

        Struppi.

        1. Wie schon erwähnt solltest du selected_value vorher als (Leer)String initialisieren (muss man das in PHP nicht? diese Sprache wird mir immer suspekter)

          OK vielen DANK.

          Jetzt klappt es ;)