admin管理员组文章数量:1363337
I have a smarty array
$promoFormData Smarty_Variable Object (3)
->value = Array (1)
deliveryDates => Array (3)
0 => Array (2)
startDate => "2013/06/05"
endDate => "2013/06/28"
1 => Array (2)
startDate => "2013/07/05"
endDate => "2013/07/28"
2 => Array (2)
startDate => "2013/08/05"
endDate => "2013/08/28"
I want to use this array deliveryDates as available dates in datepicker. So trying to convert the above as the following Javascript array
var ranges = [ { start: new Date(2013, 06, 05), end: new Date(2013, 06, 28) },
{ start: new Date(2013, 07, 05), end: new Date(2013, 07, 28) },
{ start: new Date(2013, 08, 05), end: new Date(2013, 07, 28) } ];
I have tried using below code:
<script>
var js_array = new Array();
{{foreach from=$promoFormData.deliveryDates item=array_item key=id}}
{{foreach from=$array_item item=sub_array_item key=index}}
js_array['{{$id}}']['{{$index}}'] = '{{$sub_array_item}}';
{{/foreach}}
{{/foreach}}
console.log(js_array);
</scirpt>
And I am getting the below error
TypeError: js_array[0] is undefined
js_array['0']['startDate'] = '2013/06/05';
Anyone please guide me to the right way.
I have a smarty array
$promoFormData Smarty_Variable Object (3)
->value = Array (1)
deliveryDates => Array (3)
0 => Array (2)
startDate => "2013/06/05"
endDate => "2013/06/28"
1 => Array (2)
startDate => "2013/07/05"
endDate => "2013/07/28"
2 => Array (2)
startDate => "2013/08/05"
endDate => "2013/08/28"
I want to use this array deliveryDates as available dates in datepicker. So trying to convert the above as the following Javascript array
var ranges = [ { start: new Date(2013, 06, 05), end: new Date(2013, 06, 28) },
{ start: new Date(2013, 07, 05), end: new Date(2013, 07, 28) },
{ start: new Date(2013, 08, 05), end: new Date(2013, 07, 28) } ];
I have tried using below code:
<script>
var js_array = new Array();
{{foreach from=$promoFormData.deliveryDates item=array_item key=id}}
{{foreach from=$array_item item=sub_array_item key=index}}
js_array['{{$id}}']['{{$index}}'] = '{{$sub_array_item}}';
{{/foreach}}
{{/foreach}}
console.log(js_array);
</scirpt>
And I am getting the below error
TypeError: js_array[0] is undefined
js_array['0']['startDate'] = '2013/06/05';
Anyone please guide me to the right way.
Share Improve this question edited May 30, 2013 at 22:57 Swathi asked May 30, 2013 at 22:49 SwathiSwathi 3231 gold badge4 silver badges11 bronze badges 2-
I don't know what you are asking. The array literal "works" (be aware that in javascript
new Date(2013, 06, 05)
is 5 July 2013). The script you have posted is not javascript. Are you trying to use Smarty on the server to create an array literal for javascript? So is this really just a Smarty question? – RobG Commented May 30, 2013 at 23:22 - @RobG Yes I am trying to create array literal in javascript using smarty array. Here Iam using smarty to loop through the array – Swathi Commented May 31, 2013 at 0:31
1 Answer
Reset to default 9If your Smarty security settings allow it (specifically, it is in $php_modifiers
), you could use PHP's json_encode
function:
var js_array = {$promoFormData.deliveryDates|json_encode};
Since JSON is a strict subset of actual JavaScript object literal syntax, this should give you a valid JS declaration.
本文标签: convert smarty array to javascript arrayStack Overflow
版权声明:本文标题:convert smarty array to javascript array - Stack Overflow 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1743789386a2539280.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论