我将一个标题为$all_states
的数组分配给smarty模板,如下所示:
Array
(
[0] => Array
(
[id] => 1
[state_name] => Alabama
[abbreviation] => AL
[created_at] => 1398342353
[updated_at] => 1398342353
)
[1] => Array
(
[id] => 2
[state_name] => Alaska
[abbreviation] => AK
[created_at] => 1398342353
[updated_at] => 1398342353
)
[2] => Array
(
[id] => 3
[state_name] => Arizona
[abbreviation] => AZ
[created_at] => 1398342353
[updated_at] => 1398342353
)
[3] => Array
(
[id] => 4
[state_name] => Arkansas
[abbreviation] => AR
[created_at] => 1398342353
[updated_at] => 1398342353
)
[4] => Array
(
[id] => 5
[state_name] => California
[abbreviation] => CA
[created_at] => 1398342353
[updated_at] => 1398342353
)
[5] => Array
(
[id] => 6
[state_name] => Colorado
[abbreviation] => CO
[created_at] => 1398342354
[updated_at] => 1398342354
)
)
我在同一页面上有一个jQuery代码如下:
$(document).ready(function() {
window.prettyPrint() && prettyPrint();
/*Actually I want to use the values from the above array into below loop*/
for (var i = 1; i <= 100; i++) {
$('#example28').append('<option value="' + i + '">' + i + '</option>');
}
$('#example28').multiselect({
includeSelectAllOption: true,
enableFiltering: true,
maxHeight: 150
});
});
您可以从上面代码中的注释中看到我想将smarty中的上述数组解析为javascript for循环。我该怎么做到这一点?我无论如何都要这样做,所以这里的任何人都可以帮助我吗?提前致谢。如果您仍然需要有关我的问题的更多信息,我可以为您提供相同的信息。
答案 0 :(得分:0)
尝试
$(document).ready(function() {
window.prettyPrint() && prettyPrint();
var myPhpArray = <?php echo json_encode($all_states); ?>; // <-- HERE'S YOUR ARRAY
/*Actually I want to use the values from the above array into below loop*/
for (var i = 1; i <= myPhpArray.length; i++) {
$('#example28').append('<option value="' + i + '">' + i + '</option>');
}
$('#example28').multiselect({
includeSelectAllOption: true,
enableFiltering: true,
maxHeight: 150
});
});
事实是,你不能直接将一个数组从php传递给js。我对smarty知之甚少,所以把它看作是一个更通用的方法来完成它。