我有以下 AngularJS 文件,名为
productFactory.js
包含产品列表及其详细信息,我想更新其中 1 个产品。
"use strict";
var productFactory = angular.module('productFactory', []);
productFactory.factory('productFactory', function () {
var productFactory = {};
productFactory.products = [
{
productId: 1,
name: "Product1",
category: "Urban",
desc: "Lorem Ipsum",
image: "placeholder1.png;placeholder2.png;placeholder3.png",
price: 30,
qty: 6,
variation: ""
},
{
productId: 2,
name: "Product2",
category: "Street Wear",
desc: "Lorem Ipsum",
image: "placeholder1.png;placeholder2.png;placeholder3.png",
price: 40,
qty: 10,
variation: "6,7,8,9,10,11,12"
}
];
return productFactory;
});
在 PHP 中,我可以运行此脚本来写入文件
<?php
$script="SOME_CONTENT";
$fileName="productFactory.js";
file_put_contents($fileName, $script);
?>
如何通过“productId”仅更新其中一个产品?
最佳答案
最好的方法是将产品存储在某个数据库中(它可以是 productFactory.products
变量中的简单 JSON 文件。
如果它们存储在 JSON 中,您可以在 PHP 中加载该文件,使用 json_decode($str);
将其解析为一个对象,然后在该对象中编辑您想要的内容,然后就可以了使用 (json_encode($obj);
) 将其转换回 JSON 字符串。
如果你将它们存储在像 MySQL 这样的数据库中,我认为 PHP 处理会更简单(只需为给定的产品 ID 调用 UPDATE 查询)。
处理编辑请求的 PHP 示例:
$path = "/path/to/products.json";
$data = file_get_contents($path);
$json = json_decode($string);
foreach ($json as & $product) {
// process only correct product
if ($product->productId !== $_POST['productId']) {
continue;
}
foreach ($_POST as $key => & $value) {
// here should be some data validation probably
if (isset($product[$key]) {
$product[$key] = $value;
}
}
}
$newData = json_encode($json);
file_put_contents($path, $newData);
关于javascript - PHP:使用编辑的行更新 JS 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43569921/