【问题标题】:How to push a new object into array in Js using Php如何使用 Php 将新对象推送到 Js 中的数组中
【发布时间】:2021-12-24 06:01:36
【问题描述】:

我在 Php 中有一个对象,所以我需要将它推入 Js 中的数组中,该数组位于另一个名为“db.js”的文件中。 对象->

$datae = array(
 'img'  => 'push-ups.webp',
 'videoname'=> $name,
 'name' => $_POST['name'],
 'text' => $_POST['description']
);

db.js 内部 ->

let dataGoods = [{
    "img": "push-ups.webp",
    "videoname": "igorBaitenko.mp4",
    "name": "Push-ups",
    "text": "Lorem ipsum dolor, sit amet consectetur adipisicing elit."
}, {
    "img": "push-ups.webp",
    "videoname": "igorBaitenko.mp4",
    "name": "Push-ups",
    "text": "Lorem ipsum dolor, sit amet consectetur adipisicing elit."
}];

我已经尝试使用此代码将对象附加到数组中 ->

$inp = file_get_contents('db.js');
$tempArray = json_decode($inp);
array_push($tempArray, json_decode($datae));

$jsonData = json_encode($tempArray, JSON_UNESCAPED_UNICODE);
file_put_contents('db.js', $jsonData );

但是有一些错误,所以我需要你的帮助。

【问题讨论】:

  • 我真的不认为将代码从 php 推送到 js 文件是一个好主意。如果您需要从 php 传递某些内容,最好在 HTML 中将其呈现给全局变量(例如window.state),然后使用 JS 读取它。
  • PHP 的 array_push 只推送值,而不是键。请参阅php.net/manual/en/function.array-push.php,用户对某些请求的贡献。

标签: javascript php arrays object push


【解决方案1】:

你犯了两个错误:

  1. db.js 包含一个 JavaScript sn-p,但您将它传递给 json_decode(),就像它是 JSON 一样。您必须将 JavaScript “转换”为 JSON,或者,您可以将 $tempArray 作为 JSON 保存到 db.json 并从 db.js 加载。

  2. 您使用array_push($tempArray, json_decode($datae)),但$datae 是一个数组。你可以像这样推送它:$tempArray[] = $datae

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-11-30
    • 1970-01-01
    • 2017-05-29
    • 2015-01-17
    • 1970-01-01
    • 2020-08-10
    • 1970-01-01
    相关资源
    最近更新 更多