27. april 2008 - 21:52Der er
9 kommentarer og 2 løsninger
Automatisk opdatering af felt ved indtast af tal.
Hej. Hvordan får man et felt til automatisk at opdatere sig selv?
Jeg har en variable der hedder pris=30 der ud over har jeg nogle felter <input type=text size=4 value=0 name=lager-alm> (lager status) <input type=text size=4 value=0 name=ind-alm> (indgået) <input type=text size=4 value=0 name=ud-alm> (udgået) <input type=text size=4 value=0 name=ialt-alm> (ialt) <input type=text size=4 value=0 name=rest-alm> (rest) <input type=text size=4 name=solgt> (solgt) <input type=text size=4 name=sum> (sum af dagssætning)
Feltet rest skal opdatere sig selv når der tastet i ind- og udgået. Altså ialt = lager+indgået-udgået Solgt skal så være: solgt = ialt - rest og summen skal så være Sum = solgt * pris.
Dvs feltet ialt, solgt og sum skal kunne opdatere sig selv. Håber jeg har forklaret mig godt nok. Nogen bud?
I dette særtema om aspekter af AI ser vi på skiftet fra sprogmodeller til AI-agenter, og hvordan virksomheder kan navigere i spændet mellem teknologisk hastighed og behovet for menneskelig kontrol.
Nu ved jeg jo ikke, hvor "pris" kommer fra, men du skal lave en funktion:
<script type="text/javascript"> function Calculate(){ var oForm=document.getElementById("formens-id"); var oLager=oForm["lager-alm"]; var oInd=oForm["ind-alm"]; var oUd=oForm["ud-alm"]; var oIAlt=oForm["ialt-alm"]; var oRest=oForm["rest-alm"]; var oSolgt=oForm["solgt"]; var oSum=oForm["sum"]; var iPris=5;
Hmm. Den ville ikke rigtigt helt. Der er jo flere vare end blot Alm. Jeg har tilpasset det og når jeg så åbner det regner den ikke rigtigt på det. for at adskilde hver calculate funktion fra hinanden hedder den første 1calculate() og den anden 2calculate osv. <? $vare = mysql_query("SELECT * FROM database ORDER BY id"); while($vis = mysql_fetch_array($vare)){ ?> <script type="text/javascript"> function <? echo $i;?>Calculate(){ var oForm=document.getElementById("told"); var o<? echo $i;?>Lager=oForm["<? echo "lager-$vis[2]";?>"]; var o<? echo $i;?>Ind=oForm["<? echo "ind-$vis[2]";?>"]; var o<? echo $i;?>Ud=oForm["ud-alm"]; var o<? echo $i;?>IAlt=oForm["<? echo "ud-$vis[2]";?>"]; var o<? echo $i;?>Rest=oForm["<? echo "rest-$vis[2]";?>"]; var o<? echo $i;?>Solgt=oForm["<? echo "solgt-$vis[2]";?>"]; var o<? echo $i;?>Sum=oForm["<? echo "sum-$vis[2]";?>"]; var <? echo $i;?>Pris=<? echo $vis[3];?>;
Er det fordi det er en blanding af php og java? Det skal lige siges at hvis jeg siger "view source" via min browser ser det sådan her ud: <form ACTION="" METHOD="post" ID="told"> <input type=hidden value="27/04/2008" name=dato>
<td width='20%'>Ialt</td> <td width='20%'>Rest</td> <td width='20%'>Solgt</td> <td width='20%'>Ialt</td> </tr><script type="text/javascript"> function 1Calculate(){ var oForm=document.getElementById("told"); var o1Lager=oForm["lager-alm"]; var o1Ind=oForm["ind-alm"]; var o1Ud=oForm["ud-alm"]; var o1IAlt=oForm["ud-alm"]; var o1Rest=oForm["rest-alm"]; var o1Solgt=oForm["solgt-alm"]; var o1Sum=oForm["sum-alm"]; var 1Pris=27;
</tr> <script type="text/javascript"> function 2Calculate(){ var oForm=document.getElementById("told"); var o2Lager=oForm["lager-lux"]; var o2Ind=oForm["ind-lux"]; var o2Ud=oForm["ud-alm"]; var o2IAlt=oForm["ud-lux"]; var o2Rest=oForm["rest-lux"]; var o2Solgt=oForm["solgt-lux"]; var o2Sum=oForm["sum-lux"]; var 2Pris=30;
Ja, du behøver ikke at have en masse funktioner til at gøre det samme, du overfører jo i forvejen den præcise reference til formen, og form-tags kan ikke stå inde i tabeller, hvis ikke de står i en celle ...
-- og en javascript-identifier må ikke starte med et tal, så det vil absolut give fejl ...
-- og 7 celler, der hver fylder 20% giver jo ikke mening, sæt hellere en størrelse, du ved virker ...
-- hrm, det er jo så een eneste form, men så kan vi finde vis-teksten og benytte den:
<script type="text/javascript"> var price = []; function Calculate(elm){ var ident = elm.name.split("-")[1], f = elm.form; var oLager = f["lager-" + ident]; var oInd = f["ind-" + ident]; var oUd = f["ud-" + ident]; var oIAlt = f["ud-" + ident]; var oRest = f["rest-" + ident]; var oSolgt = f["solgt-" + ident]; var oSum = f["sum-" + ident]; var Pris = price[ident];//her må du henvise til en variabel
Den vil stadig ikke :( Jeg har "copy&pasted" og sat ind - men den vil stadig ikke. Den finder fint prisen. Dette kan jeg se hvis jeg vælger view source: <form ACTION="luk.php" METHOD="post" ID="told"> <input type=hidden value="28/04/2008" name=dato> <script type="text/javascript"> var price = []; function Calculate(elm){ var ident = elm.name.split("-")[1], f = elm.form; var oLager = f["lager-" + ident]; var oInd = f["ind-" + ident]; var oUd = f["ud-" + ident]; var oIAlt = f["ud-" + ident]; var oRest = f["rest-" + ident]; var oSolgt = f["solgt-" + ident]; var oSum = f["sum-" + ident]; var Pris = price[ident];//her må du henvise til en variabel
onchange udføres, når feltet mister focus efter indtastning ...
-- og så er der en overflødig parantes-slut:
... oSum.value=parseInt(oSolgt.value)*Pris; }
-- og så er en af felterne navngivet forkert:
... var oUd = f["ud-" + ident]; var oIAlt = f["ialt-" + ident]; var oRest = f["rest-" + ident]; ...
-- så scriptet kommer til at se sådan ud:
<script type="text/javascript"> var price = []; function Calculate(elm){ var ident = elm.name.split("-")[1], f = elm.form; var oLager = f["lager-" + ident]; var oInd = f["ind-" + ident]; var oUd = f["ud-" + ident]; var oIAlt = f["ialt-" + ident]; var oRest = f["rest-" + ident]; var oSolgt = f["solgt-" + ident]; var oSum = f["sum-" + ident]; var Pris = price[ident];//her må du henvise til en variabel
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.