我生成了一个页面,其中包含由php生成的数据数组。我需要将其中一些数据用于 ajax 请求。
我只是想知道将数据存储在页面上的最佳方法是什么,它不敏感,页面不涉及表单。目前我一直在隐藏的div中使用数据属性,但似乎有点混乱?
例如。
<div id="data" class="hidden" data-question="<?= $blah ?>" data-another="<?= $blahblah ?>"></div>
虽然没有"最佳"的方法,但我推荐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'] ?>",
"answerswer" : "<? $d['answer'] ?>"
},
<?}?>
};
</script>
有三种可能性:
-
属性:这是你的方法
这可能最适合简单的字符串,例如参数和描述性数据 - 例如
data-popover
包含弹出框内容的元素。许多JS插件都是以这种方式构建的。 -
PHP 在
<script>
标签中的回显对于在同一文件中使用
<script>
标签的成本(以及可能使用全局 JS 变量)的成本,没有"额外标记"。我不建议这样做。 -
使用来自 PHP 的数据获取 JSON 的其他 AJAX 调用
最适合更复杂的数据结构,例如嵌套数组或对象。