Liste mit JS verabeiten

C

cuda

Guest
Hallo Coder,

ich habe ein Problem und zwar ich habe mehrere Eingabefelder, die sich nur im Namen unterscheiden, das ganze sieht wie folgt aus:

Code:
<?

for ($i=0; $i<$prj; $i++)
{
  echo "<tr>\n";
  echo "<td>".$buffer[$i]."</td>\n"; ?>
  <td><input type="text" name="idmo_<? echo $i; ?>" size="2" onFocus="res_mo()"></td>
  <td><input type="text" name="iddi_<? echo $i; ?>" size="2"></td>
  <td><input type="text" name="idmi_<? echo $i; ?>" size="2"></td>
  <td><input type="text" name="iddo_<? echo $i; ?>" size="2"></td>
  <td><input type="text" name="idfr_<? echo $i; ?>" size="2"></td>
  <td><input type="text" name="idsa_<? echo $i; ?>" size="2"></td>
  <td><input type="text" name="idso_<? echo $i; ?>" size="2"></td>
  </tr>
  <?
}
?>

Der Unterschied ist wie man sieht nur bei $i. So mein Problem ist, dass ich durch die idmo_$i durchlaufen will und die Werte auslesen will. Das $i ist variabel und ist nicht bekannt. Der aktuele Wert habe ich in einem Hiddenfield gespeichert.

So habe ich es mir vorgestellt:

Code:
function res_mo()
{
  var max_prj = document.vtime.prj.value;
  
  var arbzeit = new Array;
  
  for (i = 0; i <= max_prj; i++)
  {
    arbzeit[i] = document.vtime.idmo_[i].value;
    
  }
}

Nur irgendwie tut es nicht.

Habt Ihr Ideen?

'cuda
 
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
Ist in dem JS i überhaupt was drin?

Wie sieht dein Transfer von den (offensichtlich in PHP erzeugten) $i Variabelen in JS aus?
 
Das man es sich derart einfach machen kann bzweifle ich: JS geht davon aus, dass das Object den Namen "idmo_" hat und nicht etwa wie gewollt "idmo_*Wert_von_i*".

Folgendes müsste funktionieren:

Code:
function res_mo()
{
  var max_prj = document.vtime.prj.value;
  
  var arbzeit = new Array;
  
  for (i = 0; i <= max_prj; i++)
  {
    arbzeit[i] = document.getElementsByName("idmo_" + i)[0].value;
  }
}
getElementsByName() liefert ein Array, daher das "[0]" hinter der Funktion. Wenn der Name mehrmahls vorkommen sollte, musst du das zurückgegebene Array noch weiter untersuchen...

PS: Was ist "vtime"?



Uhu schrieb:
Ist in dem JS i überhaupt was drin?

Wie sieht dein Transfer von den (offensichtlich in PHP erzeugten) $i Variabelen in JS aus?
"i" ist sowohl im Javascript Code, als auch in dem PHP Abschnitt die Zählervariable einer for-Schleife, somit sollte sie auf jeden Fall einen Wert enthalten!
 
Zuletzt bearbeitet:
Kabelsalat schrieb:
Das man es sich derart einfach machen kann bzweifle ich: JS geht davon aus, dass das Object den Namen "idmo_" hat und nicht etwa wie gewollt "idmo_*Wert_von_i*".

Folgendes müsste funktionieren:

Code:
function res_mo()
{
  var max_prj = document.vtime.prj.value;
  
  var arbzeit = new Array;
  
  for (i = 0; i <= max_prj; i++)
  {
    arbzeit[i] = document.getElementsByName("idmo_" + i)[0].value;
  }
}
getElementsByName() liefert ein Array, daher das "[0]" hinter der Funktion. Wenn der Name mehrmahls vorkommen sollte, musst du das zurückgegebene Array noch weiter untersuchen...

PS: Was ist "vtime"?




"i" ist sowohl im Javascript Code, als auch in dem PHP Abschnitt die Zählervariable einer for-Schleife, somit sollte sie auf jeden Fall einen Wert enthalten!


achja sehs nun auch. Mein Gehirn bestand darauf, dass der Wert von $i im JS verwendet werden muss.
 
@Kabelsalat: Ein fettes danke Schön an Dich, es tut. Wusste auch nicht, dass es so einfach geht. Ich danke Dir.

vtime ist der Name für das Zeiterfassungsprogramm.

'cuda
 
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh