我在购物车中遇到此问题,该购物车需要显示100px高的背景。
PHP必须检查是否已创建会话,然后,根据结果,当购物车中有东西或没有东西(无会话)时,它必须保持300px的高度,应显示具有不同大小和文本的同一页面。
但是,问题是,当我更换它时,旧的300px高度仍然在新的100px高度之下。我看不到购物车和按钮,这很好,新文本也在那里。
我如何使它仅显示100px的高度,而在会话期间它不会裁剪购物车。
这里是有用的代码:
HTML和PHP:
if(!isset($_SESSION['bestelling1']) && !isset($_SESSION['bestelling2']) && !isset($_SESSION['bestelling3'])){
$winkelwagenEmpty = true;
}else{
$winkelwagenEmpty = false;
}
if($winkelwagenEmpty == false){
?> <div id="bestelling_form">
<form action="winkelwagen.php" method="post" class="width">
<button name="bestel" formaction="bestellen.php" class="bestel">bestellen</button>
<button type="submit" formaction="webshop.php" id="verder">verder winkelen</button>
<button name="legen" id="legen" >winkelwagen legen</button>
</form>
</div>
<?php
}else{
?> <div id="werk" class="bedankt cleanbackground2" >Het lijkt erop dat de winkelwagen leeg is.</div>
<!-- remove 300px background (cleanbackground) and keep the new one-->
<?php
}
if(isset($_POST['legen'])){
header("location: winkelwagen.php");
session_destroy();
}
CSS:
.cleanbackground{
background: rgb(250, 250, 250) !important;
height: 300px;
}
.cleanbackground2{
background: rgb(250, 250, 250) !important;
height: 100px !important;
}
.bedankt{
text-align: center;
width: 858px;
font-size: 30px;
}
#site_content {
width: 858px;
overflow: hidden;
margin: 0 auto 0 auto;
padding: 10px 20px 20px 20px;
background: #f6f6f0 url(back.png) repeat-y;
border: 15px solid #fff;
}
在照片中,您可以用蓝色看到我想要的结果,而用白色看到我现在得到的结果。
[请记住,我对Javascript的了解很少,因此,我尽可能避免使用它。
您当前显示的PHP代码有各种问题,这里是一个重写:
但是确实可以改善您的代码。参见下面的修复。
在理想情况下,您在if
状态中显示的所有HTML都将被包装在一个PHP变量中,您将在脚本顶部进行所有“排序”,然后仅输出最终结果变量。
/***
* This header should appear BEFORE any HTML output to the page
***/
if(isset($_POST['empty'])){
$_SESSION = []; //replace session_destroy();
header("location: shoppingcart.php");
exit; // after every header redirection.
}
$winkelwagenEmpty = true;
// isset can be stacked to check if ANY of these are set
if(isset($_SESSION['bestelling1'], $_SESSION['bestelling2'], $_SESSION['bestelling3'])){
$winkelwagenEmpty = false;
}
if($shoppingCartEmpty === false){
$output = '
<div id="order_form">
<form action="shoppingcart.php" method="post" class="width">
<button name="order" formaction="order.php" class="order">Order here</button>
<button type="submit" formaction="webshop.php" id="shop">continue shopping</button>
<button name="empty" id="empty" >empty shoppingcart</button>
</form>
</div>';
}else{
$output = '
<div id="work" class="bedankt cleanbackground2" >It looks like the shopping cart is empty. </div>
<!-- remove 300px background (cleanbackground) and keep the new one--> ';
}
print $output;
据我所知,您希望将当前高度为300px的CSS div在某些情况下替换为高度为100px的CSS div。
.cleanbackground {
display: block;
background: rgb(250, 250, 250);
height: 300px;
}
#work.cleanbackground2 {
display: block;
background: rgb(250, 250, 250);
background: #f0c0c0; /* for testing clarity */
height: 100px;
}