0

我正在尝试创建一个简单的产品目录网站,我想为每个产品显示卡片。我正在尝试通过 PHP 模板变量显示卡片,并将名称、img src、价格等作为参数传递给打印卡片的函数。

这是我的 index.php 代码:

<?php
require('./php/product_card.php');
?>

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <!-- index.css link ref -->
    <link rel="stylesheet" href="css/index.css">
    <!-- Bootstrap Link Tag -->
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css" integrity="sha384-JcKb8q3iqJ61gNV9KGb8thSsNjpSL0n8PARn9HuZOnIxN0hoP+VmmDGMN5t9UJ0Z" crossorigin="anonymous">
    <!-- FontAwesome Link Tag -->
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.14.0/css/brands.min.css" integrity="sha512-AMDXrE+qaoUHsd0DXQJr5dL4m5xmpkGLxXZQik2TvR2VCVKT/XRPQ4e/LTnwl84mCv+eFm92UG6ErWDtGM/Q5Q==" crossorigin="anonymous" />
    <title>Emmaarz</title>
</head>

<body>
    <div class="container">
        <div class="row text-center py-6 mt-5">
            <?php
                product_card("Bed Cover 1", "img_bc/1.jpeg", "Product Description in less than 100 characters (optional)", "399", "299");
                product_card("Bed Cover 2", "img_bc/2.jpeg", "Product Description in less than 100 characters (optional)", "599", "399");
            ?>
        </div>
    </div>
</body>
<script src="https://code.jquery.com/jquery-3.5.1.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.1/dist/umd/popper.min.js" integrity="sha384-9/reFTGAW83EW2RDu2S0VKaIzap3H66lZH81PoYlFhbGU+6BZp6G7niu735Sk7lN" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js" integrity="sha384-B4gt1jrGC7Jh4AgTPSdUtOBvfO8shuf57BaghqFfPlYxofvL8/KUEfYiJOMMV+rV" crossorigin="anonymous"></script>

</html>

这是 product_card.php 代码:

<?php

function product_card($prod_name, $prod_img, $prod_desc, $prod_price, $prod_price_disc) {
    $prod_card = '
    <div class="col-md-3 col-sm-6 my-3 my-md-1">
        <form action="index.php" method="get">
            <div class="card">
                <div>
                    <img src="$prod_img" alt="error" class=" img-fluid card-img-top">
                </div>
                <div class="card-body">
                    <h5 class="card-title">
                    $prod_name
                    </h5>
                <p class="card-text">
                    $prod_desc
                </p>
                <h5><s class="text-secondary">$prod_price_disc</s><span class="mx-2"></span><span class="price">$prod_price</span></h5>
                </div>
            </div>
        </form>
    </div>
    
    ';
    echo $prod_card;
}
?>

当我只是回显 $prod_name; 它显示了我通过的产品的名称,但它在 $prod_card 变量中不起作用。似乎是什么问题?怎样才能做到这一点?

谢谢你 :)

4

3 回答 3

1

你去吧。您的变量被视为普通文本字符。您需要在 HTML 字符串中附加 PHP 变量

<?php

function product_card($prod_name, $prod_img, $prod_desc, $prod_price, $prod_price_disc) {
    $prod_card = '
    <div class="col-md-3 col-sm-6 my-3 my-md-1">
        <form action="index.php" method="get">
            <div class="card">
                <div>
                    <img src="$prod_img" alt="error" class=" img-fluid card-img-top">
                </div>
                <div class="card-body">
                    <h5 class="card-title">'.
                    $prod_name.'
                    </h5>
                <p class="card-text">'.
                    $prod_desc.'
                </p>
                <h5><s class="text-secondary">'.$prod_price_disc.'</s><span class="mx-2"></span><span class="price">'.$prod_price.'</span></h5>
                </div>
            </div>
        </form>
    </div>
    
    ';
    echo $prod_card;
}
?>
于 2020-08-08T17:35:00.337 回答
0

You must concatenate strings an variabiles like this Echo 'fix string'.$var; In your case before every var $prod_img, $prod_name close with ' and add .

In your case <img src="'.$prod_img.'" And so on

于 2020-08-08T17:37:21.070 回答
-1
<div class="col-md-3 col-sm-6 my-3 my-md-1">
    <form action="index.php" method="get">
        <div class="card">
            <div>
                <img src="$prod_img" alt="error" class=" img-fluid card-img-top">
            </div>
            <div class="card-body">
                <h5 class="card-title">'. 
                $prod_name.' 
                </h5>
            <p class="card-text">'. 
                $prod_desc.' 
            </p>
            <h5><s class="text-secondary">$prod_price_disc</s><span class="mx-2"></span><span class="price">$prod_price</span></h5>
            </div>
        </div>
    </form>
</div>

也许?我不确定但

于 2020-08-08T17:30:56.537 回答