Hi Forum,
ich habe ein Formular, in dem ich alle Checkboxes mit einem Button aktiviere und gleichzeitig alle dahinter liegenden Values und dazugehörigen Id's an eine Funktion übergebe und durch eine For-Schleife jage.
Diese For-Schleife enthält eine weitere Funktion an die die übergebenen Id's und Values ebenfalls übergeben werden.
Problem dabei ist das die For-Schleife immer nur einmal durchlaufen wird, obwohl alle genannten Werte, die hinter den Checkboxen stehen, an die erste Funktion übergeben werden.
Kommentiere ich die Funktion in der For-Schleife aus und setze stattdessen ein alert(id), dann zeigt mir das alert(id) nacheinander alle id's an.
Das sagt mir das meine Schleife also richtig funktioniert.
Sobald ich jedoch die Funktion in der For-Schleife wieder rein nehme, dann unterbricht die For-Schleife den weiteren Durchlauf, sobald sie auf die darin enthaltene Funktion stößt.
Ich habe auch schon in die zweite Funktion ein alert(id) gesetzt und es kommt tatsächlich immer nur die erste id an.
Auch wenn ich die Funktion in der For-Schleife in ein "setTimeOut("Funktion()", 50)" setze, kommt auch nur die erste id an.
Wo ist der Haken?
Hier der Code:
Wäre echt große Klasse, wenn Ihr mir weiterhelfen würdet.
Besten Dank und schöne Grüße aus Kölle
ich habe ein Formular, in dem ich alle Checkboxes mit einem Button aktiviere und gleichzeitig alle dahinter liegenden Values und dazugehörigen Id's an eine Funktion übergebe und durch eine For-Schleife jage.
Diese For-Schleife enthält eine weitere Funktion an die die übergebenen Id's und Values ebenfalls übergeben werden.
Problem dabei ist das die For-Schleife immer nur einmal durchlaufen wird, obwohl alle genannten Werte, die hinter den Checkboxen stehen, an die erste Funktion übergeben werden.
Kommentiere ich die Funktion in der For-Schleife aus und setze stattdessen ein alert(id), dann zeigt mir das alert(id) nacheinander alle id's an.
Das sagt mir das meine Schleife also richtig funktioniert.
Sobald ich jedoch die Funktion in der For-Schleife wieder rein nehme, dann unterbricht die For-Schleife den weiteren Durchlauf, sobald sie auf die darin enthaltene Funktion stößt.
Ich habe auch schon in die zweite Funktion ein alert(id) gesetzt und es kommt tatsächlich immer nur die erste id an.
Auch wenn ich die Funktion in der For-Schleife in ein "setTimeOut("Funktion()", 50)" setze, kommt auch nur die erste id an.
Wo ist der Haken?
Hier der Code:
HTML:
function selection(opt) {
var selected = new Array();
var index = 0;
var id="";
var invoicenr="";
for (var intLoop = 0; intLoop < opt.length; intLoop++) {
opt[intLoop].checked = true;
if ((opt[intLoop].selected) ||
(opt[intLoop].checked)) {
index = selected.length;
selected[index] = new Object;
selected[index].value = opt[intLoop].value;
selected[index].index = intLoop;
id = selected[index].index;
invoicenr = selected[index].value;
catch_rowid_to_print(id, invoicenr); //Alle id's und Rechnungsnummern an diese Funktion übergeben--->klappt leider nicht! :-(
}
}
document.getElementById('print').style.display="block";
//return selected;
}
<form>
<table width="100%">
<?php
$heute = strtotime(date("d.m.Y"));
$datum = date("d.m.Y");
$i=1;
while($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
$Rechnungsnummer = $row["Rechnungsnummer"];
$mahnempfaenger = $row["Mahnempfaenger"];
$zahlungsziel_calc = strtotime($row['Zahlungsziel']);
$zahlungsziel = $row['Zahlungsziel'];
$mahnstufe = $row['Mahnstufe'];
$differenz = $heute-$zahlungsziel_calc;
$differenz = $differenz / 86400;
$faellig = round($differenz,0);
?>
<tr><td class='row_<?PHP echo $i % 2; ?>' value='<?php echo $i; ?>' width="130px"><font color='#000000'><?php echo $row['Rechnungsnummer']; ?></font></td>
<td class='row_<?PHP echo $i % 2; ?>' value='<?php echo $i; ?>' width="96px"><font color='#000000'><?php echo $zahlungsziel; ?></font></td>
<?php
if ($zahlungsziel>$heute) {
?>
<td class='row_<?PHP echo $i % 2; ?>' value='<?php echo $i; ?>'></td>
<?php
} else {
$timestamp = time();
$systemdatum = date("d.m.Y", $timestamp);
?>
<td class='row_<?PHP echo $i % 2; ?>' value='<?php echo $i; ?>' width="92px"><font color='#000000'> <?php if ($faellig<$systemdatum) { echo "in ".$faellig*-1; } else { echo "seit ".$faellig; } ?> Tagen</font></td>
<?php
}
?>
<td class='row_<?PHP echo $i % 2; ?>' value='<?php echo $i; ?>' width="25px"><font color='#000000'><center><?php echo $mahnstufe; ?></center></font></td>
<td align='center' class='row_<?PHP echo $i % 2; ?>' value='<?php echo $i; ?>' width="23px"><input type='checkbox' name='prnt' id='<?php echo $i; ?>' value='<?php echo $Rechnungsnummer; ?>' onChange='javascript:catch_rowid_to_print(this.id, this.value);'></td></tr>
<?php
$i++;
}
?>
<td colspan="2"><input type="button" value=" Alle selektieren " onClick="this.value=selection(this.form.prnt_cbx)"></td>
</form>
Wäre echt große Klasse, wenn Ihr mir weiterhelfen würdet.
Besten Dank und schöne Grüße aus Kölle
Zuletzt bearbeitet von einem Moderator: