Multiplar av ett tal
Hej!
Jag har i en beställningsrutin ett fält där jag skriver in hur många jag vill beställa.
Man ska bara kunna beställa hela förpackningar, därför har jag en kolumn i databasen som heter forpackningsstorlek.
Om nu förpackningsstorleken är 15 så ska det alltså bara gå att skriva in och beställa, 15,30,45,60,75,90 st osv.
Kan man lösa detta med någon if-sats och någon typ av formel?
Kontrollen ska göras när man klickar på submitknappen.
Tack på förhand
/Jimmy
Svara
Sv: Multiplar av ett tal
Vet inte hur det görs i javascript, men det är modulus du ska använda. Gissar att det kan vara såhär det skrivs:
if((antal % fröpackningsstorlek) == 0)
/Johan
Svara
Sv: Multiplar av ett tal
Vet inte på rak arm om detta funkar, men du kan ju prova...
<code>
<script language="javascript">
function siffer_check(ruta) {
var ok = "0123456789";
var go = true;
var str = ruta.value;
for (i = 0; i < str.length; i++)
{
ch = str.charAt(i);
for (j = 0; j < ok.length; j++)
if (ch == ok.charAt(j))
break;
if (j == ok.length)
{
go = false;
break;
}
}
if (!go) {
alert("Du får bara använda siffror i detta fält");
ruta.focus();
return false;
} else {
return true;
}
}
function check_antal(form) {
fp = parseFloat(form.antal.value) / 15;
fp_check = fp.toFixed(0);
diff = fp - fp_check;
if (diff == 0) {
return true;
} else {
alert("blabla");
form.antal.focus();
return false;
}
}
</script>
<form method="get" action="" enctype="text/plain" name="add" onSubmit="return check_antal(this);">
<input type="text" name="antal" onblur="return siffer_check(this);"><br>
<input type="submit" value="Go">
</form>
</code>
Svara
Sv: Multiplar av ett tal
Kan man inte använda Mod i asp med, t ex
multipel = antal Mod förpackningsstorlek
If multipel <> 0
Then
Fel
Else
Rätt
End If
Skulle man inte kunna göra nåt sånt?
Mvh
Jimmy
Svara
Sv: Multiplar av ett tal
Jopp, mod är det rätta... Mod gör ju en heltalsdivision och retunerar resten utav den... Om resten är 0 så betyder det ju att det inte blev någon rest... :)
Svara
Sv: Multiplar av ett tal
Nu har jag gjort en test och det verkar funka, men vad som inte fungerar är response.redirect
Det ser ut så här
<code>
If multipel = 0 Then
Else
%>
<script language ="vbscript">
msgbox" Antal måste vara hela förpackningar"
</script>
<%
End If
Response.Redirect "kundvagn.asp"
</code>
Det skumma är att jag inte kommer msgboxen inte fungerar
men sätter jag
det så här
<code>
<%
If multipel = 0 Then
Else
Response.Redirect "kundvagn.asp"
%>
<script language ="vbscript">
msgbox" Antal måste vara hela förpackningar"
</script>
<%
End If
%>
</code>
så funkar msgboxen men inte repsonse.redirect
Några förslag på hur jag kan göra?
Tack på förhand!
/Jimmy
Svara
Sv: Multiplar av ett tal
Det funkar med MODULUS funktionen.
Här är ett litet skript som kollar antal och anger närmaste förpackningsstorlekar om det inte gårr jämt upp. Jag har här inge koll på att det bara är siffror som skrivits in.
Jag skulle hellre föredra att beställaren fick ange antal förpackningar istället det totala antalet detaljer, men smaken....
<SCRIPT LANGUAGE="JScript">
function check_antal(form) {
best = parseFloat(form.antal.value);
diff = best % 15;
if (diff == 0) {
return true;
}
else {
prevSize = best - diff;
nextSize = prevSize + 15;
window.alert("Föregående förp = " + prevSize + ", Nästa förp = " + nextSize);
form.antal.focus();
return false;
}
}
</script>
<form method="get" action="" enctype="text/plain" name="add" onSubmit="return check_antal(this);">
<input type="text" name="antal"><br>
<input type="submit" value="Go">
</form>
//
Janne
Svara
Sv: Multiplar av ett tal
Nu är jag och jscript inte bästa kompisar, jag använder mig gärna av vbscript och asp, så om någon kunde hjälpa mig där.
Mvh
Jimmy
Svara