[如何通过PHP if语句替换HTML中的除法? [关闭]

问题描述 投票:-2回答:1

我在购物车中遇到此问题,该购物车需要显示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;
}

在照片中,您可以用蓝色看到我想要的结果,而用白色看到我现在得到的结果。enter image description here

[请记住,我对Javascript的了解很少,因此,我尽可能避免使用它。

php html css session shopping-cart
1个回答
0
投票

您当前显示的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;
} 
© www.soinside.com 2019 - 2024. All rights reserved.