gpt4 book ai didi

javascript - PHP 字符串到 Mason JS 选项

转载 作者:行者123 更新时间:2023-11-30 16:49:36 25 4
gpt4 key购买 nike

我正在尝试将 PHP 字符串传递给 javascript,然后将其用作选项。我正在使用 http://masonjs.com/ 文档来执行此操作。当我使用 data 变量时,它不起作用。

<script type="text/javascript">
var mason;
var size;
var data = "<?php echo $this->getSizes($blocks); ?>";
console.log(data);
//This contains: [3,2],[2,2]

jQuery(function(){
mason = jQuery("#grid").mason({
itemSelector: ".masonblock",
ratio: 1.5,
sizes:[
data
],
columns: [
[0, 480, 6]
],
filler: {
itemSelector: '.filler',
filler_class: 'mason-filler'
},
gutter: 5,
layout: "fluid"
})
});
</script>

data 变量包含 [3,2],[2,2] 这是我想要实现的但它不起作用。但是,如果我从 console.log 中复制相同的值并将其直接粘贴到尺寸选项中,它将起作用。

我也试过这样做,但它在选项外添加了一个双引号:

var data = <?php echo json_encode($this->getSizes($blocks)); ?>;
//Ends up as: "[3,2],[2,2]"

它似乎与作为选项传递的字符串类型有关。我应该将值作为对象发送吗?你能告诉我我做错了什么吗?

我什至尝试过 JSON.stringify(data); 但没有任何乐趣。

最佳答案

尝试:

var data = JSON.parse("[" + <?php echo json_encode($this->getSizes($blocks)); ?> + "]");

[3,2],[2,2]"不是有效的 JSON 字符串。您需要将其封装在一个数组中,JSON.parse() 才能正常工作。

注意:data 的值为 [[3,2],[2,2]] 因此您可能需要更改 大小:[data ]sizes: data

关于javascript - PHP 字符串到 Mason JS 选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30732942/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com