Avatar billede lsskaarup Nybegynder
09. marts 2005 - 14:53 Der er 1 kommentar og
1 løsning

Få mange alerts, der skal fjernes nogle

Jeg prøver at rettet nogle kode, en anden har skrevet, som returnerer lidt for mange alerts, men jeg kan ikke rigtig få bugt med dem.

Det er et system, som kan finde ud af om der findes nogle stålkonstruktioner, som er stærke nok til at bære en konstruktion. Problemet er, at hvis der skal bruges 3 profiler, og der ikke findes nogle som er stærke nok, kommer der 3 alerts, og det samme er tilfældet for f.eks. 14 profiler, så kommer der 14 alerts.

Kan de bringes ned til kun 1 vil det være rigtigt godt.

En anden og mere træls ting, er at det ser ud til at de kommer dobbelt så mange gange, nok fordi siden reloades og beregnes igen.

Dette skal stoppes, men jeg har endnu ikke kunnet få den til at stoppe med det.

Pointene bliver ligeligt fordelt imellem de 2 spørgsmål.

Koden er som efterfølgende:
Avatar billede lsskaarup Nybegynder
09. marts 2005 - 15:02 #1
Lidt html kode, som kalder funktionerne:
Og der er forskel på "Rens og Beregn" og "Beregn". "Rens..." skal rense/slette og bruge den profiler, som systemet synes er bedst. "Beregn" skal bruge dem som brugeren manuelt, kan vælge.

<td colspan="9" align="center">
    <input type="button" name="rens" value="Rens og Beregn" class="submit" onClick="performRens(true);" style="background-color:#E8EF94;"><br>
    <img src="/gfx/transparent.gif" width="1" height="5" alt="" border="0"><br>
    <input type="button" name="beregn" value="Beregn" class="submit" onClick="performBeregn(false, false);" style="background-color: #00ff00;">
</td>

performBeregn:
Som I kan se, har jeg været ved at tjekke om parametrene overhovedet blvier fanget, hvilket de gør.

function performBeregn(rld, ovs) {
    if (ovs == false){
        alert("skal ikke overskrive");
    }
    if (rld == false){
        alert("skal ikke reloade");
    }
.
.
.
<?php
    $index = 254;
    for ($i=321; $i<=333; $i++) {
?>

        if (ds.r<?php echo $index-1; ?>.value > 0) {
                      if (ds.r<?php echo $i; ?>.value == 'U' && ds.r<?php echo $index; ?>.value == 0) {
                //Hvis der ikke er valgt Rens og Beregn
                if (!ovs) {

                    alert("overskrivning af første");
                    //Er dimensiionen forskellig fra systemets forslåede
                    if (ds.r<?php echo $index; ?>select.value == U(i<?php echo $index; ?>) ) {
                        //Brug systemets forslåede dimension
                        ds.r<?php echo $index; ?>.value = U(i<?php echo $index; ?>);
                    } else {
                        //Ellers brug den manuelt indtastede
                        ds.r<?php echo $index; ?>.value = ds.r<?php echo $index; ?>select.value;
                    }
                } else {
                    alert("overskrivning af første2");
                    ds.r<?php echo $index; ?>.value = U(i<?php echo $index; ?>);
                }
            }
}
        else ds.r<?php echo $index+2; ?>.value = 0;
<?php
        $index += 5;
    }
?>

Funktionen U:
Som prøver at finde et forslag til en profil, eller returnere fejlmeddelelsen.

    function U(inval) {
        <?php
        for ($i = 1; $i <= count($U); $i++) {//$U's størrelse er 14
            echo ("
                if (inval <= " .str_replace(',', '.', $U[$i][wy]). "){
                    return '" . str_replace(',', '.', $U[$i][profil]) . "';\n
                }
            ");
        }?>
        alert('U - Der findes ikke en dimesion af denne profiltype der er stærk nok');
        return 0;
    }

Problemet er så vidt jeg har gennemskuet at funktion U, bliver kald dynamisk for hver profil, som der skal bruges. Jeg har dog fået brugeren til at acceptere at dette ikke kan ændres, bare alerts ikek kommer dobbelt. Men kan I ændre det, så vil det bare være perfekt.
Avatar billede lsskaarup Nybegynder
14. marts 2005 - 14:08 #2
Har selv løst det, så noget af koden ud ser sådanne ud:
            if (ds.r<?php echo $i; ?>.value == 'IPE' && ds.r<?php echo $index; ?>.value == 0) {//"Frisk" side ingen beregninger fortaget
                ds.r<?php echo $index; ?>.value = IPE(i<?php echo $index; ?>);
            }
            else if (ds.r<?php echo $i; ?>.value == 'HEA' && ds.r<?php echo $index; ?>.value == 0) {
                ds.r<?php echo $index; ?>.value = HEA(i<?php echo $index; ?>);
            }
            else if (ds.r<?php echo $i; ?>.value == 'HEB' && ds.r<?php echo $index; ?>.value == 0) {
                ds.r<?php echo $index; ?>.value = HEB(i<?php echo $index; ?>);
            }
            else if (ds.r<?php echo $i; ?>.value == 'U' && ds.r<?php echo $index; ?>.value == 0) {
                ds.r<?php echo $index; ?>.value = U(i<?php echo $index; ?>);
            } else {//Beregniner fortaget før, så manuelt valgte dimensioner ikke overskrives
                if (ds.r<?php echo $index; ?>select.value == IPE(i<?php echo $index; ?>) ) {
                    ds.r<?php echo $index; ?>.value = IPE(i<?php echo $index; ?>);
                } else {
                    ds.r<?php echo $index; ?>.value = ds.r<?php echo $index; ?>select.value;
                }
            }
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester