[英]Assign a Perl Array to Javascript variable
我试图将Perl代码与JavaScript集成在一起,遇到一个问题,我只是想查看我存储在Perl中的数组的输出。 以下代码为我提供了存储在数组中的适当元素,但是我看不到JavaScript中的元素。
my @list_of_vendors;
while(!$resultSet->EOF) {
push @list_of_vendors, $resultSet->Fields("vendor")->Value;
$resultSet->MoveNext;
}
print "The First Vendor is: " . $list_of_vendors[0]. "\n";
打印出来The First vendor is: 3D Systems
以下代码似乎没有给我我想要的结果...
print <<ONE;
<html>
<body>
<h4> Test Vendor Array Javascript </h4>
<p id="demo"</p>
<script type="text/javascript" language="JavaScript">
var myVendorArray = @list_of_vendors;
document.write('<p> $list_of_vendors[0] is the same as myVendorArray[0] </p>');
</script>
</body>
</html>
ONE
我以为这会给我3D Systems is the same as 3D Systems
但是它给html屏幕一个空白。
谁能向我指出我可能做错了什么? 或为我指出正确的方向,以使用notepad ++或其他有用的IDE对此进行调试。 谢谢一大堆!
您代码的heredoc中的所有内容均由Perl内插,但客户端将其解释为JavaScript。 所以如果你写
@list_of_vendors = ("Alice","Bob","Charlie");
...
print <<EOF;
...
<script>
var list_of_vendors = @list_of_vendors;
...
EOF
客户将会看到类似
var list_of_vendors = Alice Bob Charlie;
Perl具有很好的功能,可以将Perl数据结构转换为JSON表示法,这很容易被JavaScript理解,因此您应该执行以下操作:
use JSON;
$list_of_vendors_json = encode_json(\@list_of_vendors);
...
var list_of_vendors = $list_of_vendors_json;
...
在这种情况下,浏览器将显示以下内容:
var list_of_vendors = ["Alice","Bob","Charlie"];
而其余的代码将按预期工作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.