好的,所以我正在开展一个学校项目,目前正在开发一个购物计算器",该文本是挪威语,但这并不重要。
我的总和变量是在购物者想要通过邮寄提交的项目之后设置的。一切正常。 但是在代码中我应该添加带有优惠券代码的文本,如果客户购物超过800NOK。它有效,但在点击提交按钮之前我一直收到此错误:Error message
这是我的HTML:
<form action="" method="get">
<p>Velg vare 1: </p>
<select name="vare1">
<option value="Medlemskap">Medlemskap, 500 kr</option>
<option value="Ball">Select Utlimate Håndball, 600 kr</option>
<option value="Klister">Select Profcare Klister, 500 kr</option>
<option value="Ingen">Ingen vare</option>
</select>
<p>Velg vare 2: </p>
<select name="vare2">
<option value="Medlemskap">Medlemskap, 500 kr</option>
<option value="Ball">Select Utlimate Håndball, 600 kr</option>
<option value="Klister">Select Profcare Klister, 500 kr</option>
<option value="Ingen">Ingen vare</option>
</select>
<p>Velg vare 3: </p>
<select name="vare3">
<option value="Medlemskap">Medlemskap, 500 kr</option>
<option value="Ball">Select Utlimate Håndball, 600 kr</option>
<option value="Klister">Select Profcare Klister, 500 kr</option>
<option value="Ingen">Ingen vare</option>
</select><br><br>
<input type="submit" name="beregn_prisen" value="Beregn prisen">
</form>
这是我的php:
<?php
if(isset($_GET["beregn_prisen"])) {
$vare1 = $_GET["vare1"];
$vare2 = $_GET["vare2"];
$vare3 = $_GET["vare3"];
if ($vare1=="Ball") {
$pris1=600;
} else if ($vare1=="Medlemskap") {
$pris1=500;
} else if ($vare1=="Klister") {
$pris1=500;
} else {
$pris1=0;
}
if ($vare2=="Ball") {
$pris2=600;
} else if ($vare2=="Medlemskap") {
$pris2=500;
} else if ($vare2=="Klister") {
$pris2=500;
} else {
$pris2=0;
}
if ($vare3=="Ball") {
$pris3=600;
} else if ($vare3=="Medlemskap") {
$pris3=500;
} else if ($vare3=="Klister") {
$pris3=500;
} else {
$pris3=0;
}
$sum = $pris1 + $pris2 + $pris3;
echo "<strong>$vare1</strong>: $pris1 kr <br>
<strong>$vare2</strong>: $pris2 kr<br>
<strong>$vare3</strong>: $pris3 kr";
echo "<br><br>Prisen er <strong>$sum</strong> kroner";
}
if ($sum >= "800") {
echo "<br><br>Du har fått en rabattkode for å handle for over 800kr! <br>Rabattkoden er: <strong>2HJ4G7S</strong>";
}
?>
正如我所说,一切正常,但当用户未提交时,我收到了令人讨厌的错误消息。
答案 0 :(得分:2)
您的代码的简化版本如下所示:
if(isset($_GET["beregn_prisen"])) {
# Do stuff that defines $sum
}
if ($sum >= "800") {
echo "<br><br>Du har fått en rabattkode for å handle for over 800kr! <br>Rabattkoden er: <strong>2HJ4G7S</strong>";
}
只需将使用$sum
的代码全部移动到控制其存在与否的if
语句中。
if(isset($_GET["beregn_prisen"])) {
# Do stuff that defines $sum
if ($sum >= "800") {
echo "<br><br>Du har fått en rabattkode for å handle for over 800kr! <br>Rabattkoden er: <strong>2HJ4G7S</strong>";
}
}
答案 1 :(得分:0)
这部分:
if ($sum >= "800") {
echo "<br><br>Du har fått en rabattkode for å handle for over 800kr! <br>Rabattkoden er: <strong>2HJ4G7S</strong>";
}
超出条件:
if(isset($_GET["beregn_prisen"])) {
因此,$ sum未定义。 你应该把这部分放在条件中。
echo "<br><br>Prisen er <strong>$sum</strong> kroner";
//} <-- removed this one.
if ($sum >= "800") {
echo "<br><br>Du har fått en rabattkode for å handle for over 800kr! <br>Rabattkoden er: <strong>2HJ4G7S</strong>";
}
} //Repositioned it over here.
更好的练习笔记#1: 使用缩进,它可以更容易地找到像这样的错误或问题。 (而且它在视觉上更好)
更好的练习笔记#2:
不要多次使用if()
和elseif()
,而应考虑使用switch()
语句。
答案 2 :(得分:-2)
$ sum未定义,如果不是$ _GET [&#34; beregn_prisen&#34;]
<?php
if(isset($_GET["beregn_prisen"])) {
$vare1 = $_GET["vare1"];
$vare2 = $_GET["vare2"];
$vare3 = $_GET["vare3"];
if ($vare1=="Ball") {
$pris1=600;
} else if ($vare1=="Medlemskap") {
$pris1=500;
} else if ($vare1=="Klister") {
$pris1=500;
} else {
$pris1=0;
}
if ($vare2=="Ball") {
$pris2=600;
} else if ($vare2=="Medlemskap") {
$pris2=500;
} else if ($vare2=="Klister") {
$pris2=500;
} else {
$pris2=0;
}
if ($vare3=="Ball") {
$pris3=600;
} else if ($vare3=="Medlemskap") {
$pris3=500;
} else if ($vare3=="Klister") {
$pris3=500;
} else {
$pris3=0;
}
$sum = $pris1 + $pris2 + $pris3;
echo "<strong>$vare1</strong>: $pris1 kr <br>
<strong>$vare2</strong>: $pris2 kr<br>
<strong>$vare3</strong>: $pris3 kr";
echo "<br><br>Prisen er <strong>$sum</strong> kroner";
} else {
$sum = 0;
}
if ($sum >= "800") {
echo "<br><br>Du har fått en rabattkode for å handle for over 800kr! <br>Rabattkoden er: <strong>2HJ4G7S</strong>";
}
?>