将数组值从html传递到javascript
Posted
技术标签:
【中文标题】将数组值从html传递到javascript【英文标题】:Passing array value from html to 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[]
? []
通常用于将数据推送到数组。
【参考方案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>
【讨论】:
以上是关于将数组值从html传递到javascript的主要内容,如果未能解决你的问题,请参考以下文章
在 codeigniter 中,如何将数组值从控制器传递到同一视图页面?