【问题标题】:Passing array value from html to javascript将数组值从html传递到javascript
【发布时间】:2014-07-02 05:45:33
【问题描述】:

注意:使用 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[]>";

这显然行不通

【问题讨论】:

  • 为什么是echo $data-method[][] 通常用于将数据推送到数组。

标签: javascript php html arrays laravel


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    获取方法:

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

    并获取 id:

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

    【讨论】:

      【解决方案3】:

      除了@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']>";
      

      完全像你自己的方式。

      【讨论】:

        【解决方案4】:

        您可以将数组传递为

        <?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>
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2023-03-11
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-05-07
          • 2016-11-05
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多