0

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

|拳击手|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 集合,而不仅仅是字符串。我想知道我能做些什么来避免这种行为?因为我只需要一个字符串元素的 JS 数组(根据示例为 4 个),仅此而已

4

1 回答 1

0

太糟糕了,这对我来说是一个明显的疏忽,我只是忘记在连接变量名称之前包含引号,因为 JS 试图评估原始字符串,因为它们也匹配 DOM 中的 id

 for($x = 0; $x < count($cartArr); $x++){
                    echo 'paramArr.push("' . $cartArr[$x] . '");';
                }
于 2020-05-20T17:54:16.343 回答