如何在PHP模板字符串字面量中插入if语句实现商品已加购标识展示
你不能直接在PHP的双引号字符串模板中嵌套if/for这类控制语句,正确的做法是提前计算好需要插入的「已加购」标识HTML内容,存为单独变量后再插入到模板对应位置,修改后的完整代码如下:
function component($productname,$genre,$beat_tags,$productprice1,$productprice2,$productprice3,$productprice4,$productimg,$product_id) { // 提前计算已加购标识的HTML内容,默认值为空 $added_to_cart_html = ''; if (isset($_SESSION['cart'])) { for ($i=0; $i < count($_SESSION['cart']); $i++) { if ($_SESSION['cart'][$i]['product_id'] == $product_id) { $added_to_cart_html = '<div class="item_added_to_cart"><img src="images/website/shopping_cart_added.png"></div>'; break; } } } $element = " <div class=\"track_column\"> <!--<form action=\"tracks.php\" method=\"post\">--> <div class=\"track_card_content\"> <div class=\"track_image\"> <img width=\"50\" height=\"50\" src=\"$productimg\" alt=\"product image\"> <div class=\"mediPlayer\"> <audio class=\"listen\" preload=\"none\" data-size=\"50\" src=\"Multiple-circular-player-master/sounds/piano.mp3\"></audio> </div> </div> <div class=\"card-body\"> <h5 class=\"card-title\">$productname</h5> <p class=\"card-genre\"> Genre: $genre </p> <p class=\"card-text\"> Tags: $beat_tags </p> <span class=\"price\">$$productprice1+</span> <div class=\"cart-track-button\">Add to Cart</div> <div class=\"license_dropdown\" style> <div class=\"license_dropdown_options\"> <ul class=\"license_dropdown_options_main\"> <li> <form action=\"tracks.php\" method=\"post\"> <button class=\"option_button\" type=\"submit\" name=\"add\"> <div class=\"option_title\">Basic</div> <div class=\"option_price\">$$productprice1</div> <input type='hidden' name='product_id' value='$product_id'> <input type='hidden' name='product_price' value='$productprice1'> <input type='hidden' name='category' value='lease'> <input type='hidden' name='option' value='basic'> <input type='hidden' name='quantity' value='1'> </button> </form> </li> <li> <form action=\"tracks.php\" method=\"post\"> <button class=\"option_button\" type=\"submit\" name=\"add\"> <div class=\"option_title\">Premium</div> <div class=\"option_price\">$$productprice2</div> <input type='hidden' name='product_id' value='$product_id'> <input type='hidden' name='product_price' value='$productprice2'> <input type='hidden' name='category' value='lease'> <input type='hidden' name='option' value='premium'> <input type='hidden' name='quantity' value='1'> </button> </form> </li> <li> <form action=\"tracks.php\" method=\"post\"> <button class=\"option_button\" type=\"submit\" name=\"add\"> <div class=\"option_title\">Unlimited</div> <div class=\"option_price\">$$productprice3</div> <input type='hidden' name='product_id' value='$product_id'> <input type='hidden' name='product_price' value='$productprice3'> <input type='hidden' name='category' value='lease'> <input type='hidden' name='option' value='unlimited'> <input type='hidden' name='quantity' value='1'> </button> </form> </li> <li> <button class=\"option_button\" onclick=\"togglePopup()\"> <div class=\"option_title\">Exclusive</div> <div class=\"option_price\">$productprice4</div> <input type='hidden' name='category' value='exclusive'> <input type='hidden' name='option' value='exclusive'> <input type='hidden' name='quantity' value='1'> </button> </li> </ul> </div> </div> <!-- 插入提前计算好的已加购标识 --> $added_to_cart_html </div> </div> <!--</form>--> </div> "; echo $element; }
内容的提问来源于stack exchange,提问作者johnnyjohn400
相关产品推荐
相关产品推荐

