0

I've been working on an e-commerce app and I took out all the HTML in my index page and created a function called component() like this:

function component($productName,$productPrice,$productImage){
    $element = "
    <div class=\"col-md-3 col-sm-6 my-3 my-md-0\">
    <form action=\"index.php\" method=\"POST\">
        <div class=\"card shadow\">
            <div>
                <img src=\"$productImage\" alt=\"image1\" class=\"img-fluid card-img-top\">
            </div>
            <div class=\"card-body\">
                <h5 class=\"card-title text-sm-center\">$productName</h5>
                <h6 class=\"text-sm-center\">
                   <i class=\"fas fa-star\"></i>
                   <i class=\"fas fa-star\"></i>
                   <i class=\"fas fa-star\"></i>
                   <i class=\"fas fa-star\"></i>
                   <i class=\"far fa-star\"></i>
                </h6>
                <p class=\"card-text text-sm-center\">
                    Some Quick example text to build on the card
                </p>
                <h5 class=\"text-sm-center\">
                    <small><s class=\"text-secondary\">$519</s></small>
                    <span class=\"price\">$productPrice</span>
                </h5>

                <button class=\"btn btn-warning\" type=\"submit\" name=\"add\">Add to Cart<i class=\"fas fa-shopping-cart\"></i></button>
            </div>
        </div>    
    </form>
</div>

    ";

    echo $element;
}

?>

Now, im trying to access the HTML content of component in my index.php like this:

<?php  require "component.php"; ?>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Shopping Cart</title>

    <link rel="stylesheet" href="./dist/css/all.min.css">
    <link rel="stylesheet" href="./dist/css/style.css">

    <link rel="stylesheet" href="./dist/css/bootstrap.min.css">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.11.2/css/all.css" integrity="sha256-46qynGAkLSFpVbEBog43gvNhfrOj+BmwXdxFgVK/Kvc=" crossorigin="anonymous" />
    <!--<link rel="stylesheet" href="./dist/css/fa.5.11.2.css">-->


</head>
<body>
<div class="container">
    <div class="row text-center py-5">
      <?php

       component(productName:"Product 1", productPrice:599, productImage:"./upload/product1.png" );

      ?>
    </div>      
</div>


    <script src=".dist/js/jquery.min.js"></script>
    <script src=".dist/js/popper.min.js"></script>
    <script src=".dist/js/bootstrap.min.js"></script>
</body>
</html>

And I am getting this error:

Error Message : Parse error: syntax error, unexpected ':', expecting ',' or ')' in C:\xampp\htdocs\shopping\index.php on line 24

Please, I need help to proceed.

Thanks

Bhadresh Kathiriya
  • 3,147
  • 2
  • 21
  • 41

1 Answers1

0

Use below mentioned HTML.

<?php  require "component.php"; ?>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Shopping Cart</title>

    <link rel="stylesheet" href="./dist/css/all.min.css">
    <link rel="stylesheet" href="./dist/css/style.css">

    <link rel="stylesheet" href="./dist/css/bootstrap.min.css">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.11.2/css/all.css" integrity="sha256-46qynGAkLSFpVbEBog43gvNhfrOj+BmwXdxFgVK/Kvc=" crossorigin="anonymous" />
    <!--<link rel="stylesheet" href="./dist/css/fa.5.11.2.css">-->


</head>
<body>
<div class="container">
    <div class="row text-center py-5">
      <?php

       component("Product 1", 599,"./upload/product1.png" );

      ?>
    </div>      
</div>


    <script src=".dist/js/jquery.min.js"></script>
    <script src=".dist/js/popper.min.js"></script>
    <script src=".dist/js/bootstrap.min.js"></script>
</body>
</html>

You need to change just below mentioned calling function.

component("Product 1", 599,"./upload/product1.png" );
ABHI
  • 122
  • 1
  • 9