将数组值从html传递给javascript

时间:2014-05-14 09:02:32

标签: javascript php html arrays laravel

注意:使用Laravel框架但概念不应该太大。

如何将$data['method']$data['id]传递给javascript?

<div id="player" data-method="{{ $data['method'] }}" data-id="{{ $data['id'] }}"></div>

数据方法和数据ID通过控制器传递。

在javascript中,我目前有

var method = "<?php echo $data-id[]>";
var id = "<?php echo $data-method[]>";

哪个显然不起作用

4 个答案:

答案 0 :(得分:4)

获取方法:

var method = document.getElementById("player").getAttribute("data-method");

获得身份证明:

var id = document.getElementById("player").getAttribute("data-id");

答案 1 :(得分:1)

除了@ chris97ong回答,如果你使用jQuery,那么你可以使用这样的结构:

var method = $('#player').data('method');
var id = $('#player').data('id');

但是如果要将id和方法值直接粘贴到javascript,请使用:

var method = "<?php echo $data['id']>";
var id = "<?php echo $data['method']>";

完全像你自己的方式。

答案 2 :(得分:0)

Jeffrey Way提供了一个很好的插件,可以将变量传递给控制器​​中的JavaScript:https://github.com/laracasts/PHP-Vars-To-Js-Transformer

答案 3 :(得分:0)

您可以将数组作为

传递
<?php
    $array = array("a","b","c","d");
    $json_str = json_encode($array);
?>
<a str='<?php echo $json_str; ?>' class="array_pass">Pass Value</a>

<script>
$(document).ready(function(e) {
    $(".array_pass").click(function() {
        var str = $(this).attr("str");
        var array = jQuery.parseJSON(str);
        alert(array[0]);
    });
});
</script>