我生成了一个页面,其中包含由php生成的数据数组。我需要将一些数据用于ajax请求。
我只是想知道在页面上存储数据的最佳方法是什么,它不敏感,页面不涉及表单。目前我一直在隐藏的div中使用数据属性,但看起来有点像梅西?
例如
<div id="data" class="hidden" data-question="<?= $blah ?>" data-another="<?= $blahblah ?>"></div>
答案 0 :(得分:1)
虽然没有“最佳”方式,但我建议使用JSON - 一种存储和交换数据的格式,并且看起来很适合您的情况。
而不是将任意数据存储在html元素的数据属性中,如下所示:
<div data-name="bob" data-age="27" data-gender="male" />
Json允许你像这样存储它们:
people = {
"bob" : {"age":"27", "gender":"male"},
"alice" {"age":"31", "gender":"female"}
}
您可以通过几乎任何语言的本机或库调用以编程方式访问此数据,尤其是PHP和JavaScript。
在JavaScript中,JSON的访问方式如下:
BobsAge = people['bob'].age;
此格式允许进行其他编程访问,例如循环对象或键,这可能难以对html元素的数据属性执行。
在您的情况下,可以像这样生成JSON(尽管有更好的方法):
<script>
var data = {
<? foreach ($data as $d){ ?>
{
"question" : "<? $d['question'] ?>",
"answer" : "<? $d['answer'] ?>"
},
<?}?>
};
</script>
答案 1 :(得分:0)
有三种可能性:
属性:这是您的方法
这可能是简单字符串的最佳选择,例如:参数和描述性数据 - 例如data-popover
包含弹出内容的元素。许多JS插件都是以这种方式构建的。
<script>
代码中的PHP回显
在同一个文件中使用<script>
标记的成本没有“额外标记”(可能还有全局JS变量的使用)。我不建议这样做。
额外的AJAX调用使用PHP中的数据获取JSON
最适合更复杂的数据结构,例如嵌套数组或对象。