HTML 集合被解析为 JavaScript 到 PHP 而它应该是一个字符串

HTML collection getting parsed to JavaScript through PHP when it should be a String

我有一个数据库,用于创建字符串值资源,例如

|义和团|1|

|衬衫|2|

等 然后我使用 php 用这个资源填充一个数组 例如

$myArr = arrary['Boxers', '1', 'Shirts', 2]

然后我通过 echo 和 .push() for 循环中的每个元素将数组解析为 JavaScript 数组

这个JS数组然后成为JS函数调用的参数。 如下所示。

<?php
            if(isset($_SESSION["username"])){

                $cartArr = array();
                $sql = "SELECT item, quantity FROM shop_cart WHERE user = 'Mike'";
                $result = $conn->query($sql);
                if($result->num_rows > 0){    
                    while($row = $result->fetch_assoc()) {
                        array_push($cartArr,$row["item"],$row["quantity"]);
                    }
                }    

                echo '<script> let paramArr = [];';

                for($x = 0; $x < count($cartArr); $x++){
                    echo 'paramArr.push(' . "$cartArr[$x]" . ');';
                }


                echo 'cleanUpVue(paramArr);

                </script>';
            }
    ?>

问题在于,每个字符串元素(例如 Boxers、Shirts)不断被解析为 HTML 集合,而不仅仅是字符串。我想知道我能做些什么来避免这种行为?因为我只需要一个 String 元素的 JS 数组(示例中有 4 个),别无其他

可怕的是我的明显疏忽,我只是忘记在连接变量名称之前包含引号,因为 JS 试图评估原始字符串,因为它们也与 DOM[ 中的 id 匹配=11=]

 for($x = 0; $x < count($cartArr); $x++){
                    echo 'paramArr.push("' . $cartArr[$x] . '");';
                }