Dobbelt submit eller noget lignede
Jeg har en siden, som nærmest minder om et lille excel regneark i opbygning. Der er en masse celler, som brugeren skal indtaste værdier i. De ligger i ca. 15 kolonner og ca. 7 rækker. For at gøre det nemmere for brugerne, har vi ændret siden, så de kun skal udfylde de 3 første kolonner, og de efterfølgende bliver så automatisk udregnet ud fra nogle parametre.Problemet er at udregningen, først sker når siden indlæses, hvilket betyder at de kun er værdierne fra de 3 første kolonner, som reelt blvier gemt. Brugeren kan så trykke gem igen, og så bliver de nye værdier gemt, men det er jo ikke optimalt.
Er der ikke en eller anden måde, hvorpå jeg via submit til en proces-side, kan få reloadet og gemt output-siden igen.
Script (kalkulation.php), som vise og udregner værdier:
<?php
for ($j = 1; $j <= count($kostpristabel); $j++) {
$mld = 1;
echo "<tr>\n";
echo "<td>".$kostpristabel[$j]['spaendvidde']."</td>\n";
echo "<td>".$kostpristabel[$j]['vaegt']."</td>\n";
$antaltyper = count($typer);
for ($i=1; $i<=($antaltyper*count($KORROSIONKLASSE)); $i++) {
$modulus = $i % $antaltyper;
if ($modulus==0){
$modulus=$antaltyper;
}
if($i>$antaltyper) {
$standard = number_format($TILLAEGOVERFLADE[$mld] + $KOSTPRIS1[$j][$modulus], 2, '.', '');
echo "<td><input class=\"small\" type=\"text\" name=\"kost1[$j][$i]\" value=\"".$standard."\"></td>\n";
if($modulus==$antaltyper){
$mld++;
}
} else {
echo "<td><input class=\"small\" type=\"text\" name=\"kost1[$j][$i]\" value=\"".$KOSTPRIS1[$j][$i]."\" onChange=\"document.ds.submit();\"></td>\n";
if($modulus==$antaltyper){
$mld++;
}
}
}
echo "</tr>\n";
}
?>
Scriptet (kalkulation_process.php) som gemmer værdierne i dette tilfælde i en fil på serveren:
$KOSTPRIS1 = array();'."\n";
for ($i=1; $i<=8; $i++) {
$res .= '$KOSTPRIS1['.$i.'] ='." array('0";
for($j=1; $j<=(count($PRODUKTIONSMETODE)*count($KORROSIONKLASSE)); $j++) {
$res .= "','";
if ($_POST['kost1'][$i][$j] == '') $res .= '0';
else $res .= str_replace(",", ".", $_POST['kost1'][$i][$j]);
}
$res .= "');\n\n";
}
Begge er selvfølgelig klippet ud af en større sammenlæng.
