Javascript PHP字符串到JS选项
我试图将一个PHP字符串传递给javascript,然后将其用作一个选项。我正在使用Javascript PHP字符串到JS选项,javascript,Javascript,我试图将一个PHP字符串传递给javascript,然后将其用作一个选项。我正在使用http://masonjs.com/docs来执行此操作。当我使用数据变量时,它不起作用 <script type="text/javascript"> var mason; var size; var data = "<?php echo $this->getSizes($blocks); ?>"; console.log(data); /
http://masonjs.com/
docs来执行此操作。当我使用数据
变量时,它不起作用
<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>
它似乎与作为选项传递的字符串类型有关。我应该将值作为对象发送吗?你能告诉我我做错了什么吗
我甚至尝试了JSON.stringify(数据)代码>但没有乐趣。var data=JSON.parse();
var data = JSON.parse(<?php echo json_encode($this->getSizes($blocks)); ?>);
我们应该做到这一点。虽然考虑是从PHP < P >生成JS的不良实践尝试:
var data = JSON.parse("[" + <?php echo json_encode($this->getSizes($blocks)); ?> + "]");
var data=JSON.parse(“[”+“]);
“[3,2],[2,2]”不是有效的JSON字符串。您需要将其封装在一个数组中,以便JSON.parse()
正常工作
注意:数据
将具有值[[3,2],[2,2]]
,因此您可能希望将大小:[data]
更改为仅大小:数据
您正在使用的插件期望大小
为一个数组。当你写作时:
var data = "<?php echo $this->getSizes($blocks); ?>";
但是
尝试data=[]
并将size选项设置为size:data
您能告诉我,如果我将其作为php数组发送,如何将其转换为size选项吗?@MagentoMan当将数据从php传递到前端时,您正在处理字符串,您不能传递php对象。但是,您可以传递JSON编码的PHP对象,然后将它们解码为JavaScript对象。因此,在一行中size:JSON.parse()代码>。谢谢!你帮了大忙!
var data = "<?php echo $this->getSizes($blocks); ?>";
var data = "[3,2],[2,2]"; // Will be a string not an array
var data = [<?php echo $this->getSizes($blocks); ?>]; // I removed quotes plus added brackets to make it an array
jQuery(function(){
mason = jQuery("#grid").mason({
itemSelector: ".masonblock",
ratio: 1.5,
sizes: data,
......
});
});