将 PHP 字符串和整数作为参数传递给 JavaScript 函数

Passing a PHP string and an integer as arguments to a JavaScript function

我正在尝试从 PHP 传递一个字符串和一个整数作为 JavaScript 函数的参数。我尝试了很多不同的解决方案,并了解到它与转义字符有关。但是我想不通,所以我希望你能帮助我。 这条线给我带来了麻烦:

<button onclick="addToCart(<?php echo $productName ?>, <?php echo $price ?>)">Add to cart</button>

比如我传id是没有问题的,所以跟商品名是字符串有关

完整代码:

    <?php
    $databaseConnection = connectToDatabase();

    $sql = "SELECT * FROM product";
    $res = $databaseConnection->query($sql);
    $count = mysqli_num_rows($res);

    if ($count > 0) {
        //products available
        while ($row = mysqli_fetch_assoc($res)) {
            $id = $row['id'];
            $productName = $row['productName'];
            $imageName = $row['imageName'];
            $price = $row['price'];
            $quantity = $row['quantity'];
    ?>
            <!--display all products-->
            <div class="col-4">
                <img src="img/<?php echo $imageName; ?>">
                <h4><?php echo $productName; ?></h4>
                <p><?php echo $price; ?> kr</p>
                <p style="color: green"><?php echo $quantity; ?> left in stock</p>
                <button onclick="addToCart(<?php echo $productName ?>, <?php echo $price ?>)">Add to cart</button>

            </div>
    <?php

        }
    }

    ?>

函数在它自己的 .js 文件中,如果我传递给整数而不是字符串就可以工作。

function addToCart(x,y) {
    alert(x + y);
}

尝试:

<button  onclick="addToCart('<?=$productName?>', '<?=$price?>')">Add to cart</button>