gpt4 book ai didi

javascript - 将数据从 json 传递和使用到 javascript

转载 作者:行者123 更新时间:2023-12-05 04:31:35 25 4
gpt4 key购买 nike

我有一个在 php 页面中调用的 javascript 函数。我还向该函数添加了一个 json 方法,用于从数据库中提取数据。这是它的样子:

$this->registerJsFile('/js/restaurant-reserve.js', ['depends' => [JqueryAsset::class]]);
$this->registerJs('restaurantReserve.init('. Json::encode($restaurant->workHours) .')');

因此,在页面末尾,我得到了以下形式的数据:

restaurantReserve.init([{"id":86,"restaurant_id":1,"day":"Mon","open":"9.30","close":"14.30","created_at":"2022-02-22 10:56:15"}])

但我想在 restaurantReserve 函数所在的 javascript 文件本身中使用此数据。

因为现在我必须手动完成:

let json = [{"id":86,"restaurant_id":1,"day":"Mon","open":"9.30","close":"14.30","created_at":"2022-02-22 10:56:15"}]

我怎样才能把json数据转成javascript来使用呢?不要手写。

更新

我想到了一个答案,就是添加这一行,它将全局声明这个变量:

$this->registerJs('let json = '. Json::encode($restaurant->workHours) .';');

但是发现这个变量是在执行这个restaurant-reserve.js文件的脚本之后才声明的,这个文件是用到这个变量的,有点不懂怎么弄它更高。

这是我在 php 文件中的最终代码:

$this->registerJs('let json = '. Json::encode($restaurant->workHours) .';');
$this->registerJsFile('/js/restaurant-reserve.js', ['depends' => [JqueryAsset::class]]);
$this->registerJs('restaurantReserve.init()');

我在页面上得到的结果首先是文件,然后是这个变量:

<script src="/js/restaurant-detail.js"></script>
<script src="/js/share.js"></script>
<script>jQuery(function ($) {
let json = [{"id"...}]
</script>

可以做什么??

最佳答案

registerJs中的第二个参数与此问题有关。
也就是说,第二个参数决定脚本应该插入页面的哪个位置。可能的值是:

View::POS_HEAD  for head section.
View::POS_BEGIN for right after opening <body>.
View::POS_END for right before closing </body>.
View::POS_READY for executing code on the document ready event. This will automatically register jQuery and wrap the code into the appropriate jQuery code. This is the default position.
View::POS_LOAD for executing code on the document load event. Same as the above, this will also register jQuery automatically.

The first argument is the actual JS code we want to insert into thepage. It will be wrapped into a tag. The second argumentdetermines at which position the script should be inserted into thepage.

对于脚本文件,您还可以指定加载它的地点和时间。根据依赖和....
最好引用这个link .

关于javascript - 将数据从 json 传递和使用到 javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71812020/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com