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] . '");';
}
我有一个数据库,用于创建字符串值资源,例如
|义和团|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] . '");';
}