我有以下名为
的AngularJS文件productFactory.js
列出了产品及其详细信息,我想更新其中一个产品。
"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'更新其中一个产品?
答案 0 :(得分:1)
最好的方法是将产品存储在某个数据库中(它可能是productFactory.products
变量中的简单JSON文件。
如果它们存储在JSON中,您可以在PHP中加载文件,将其解析为具有json_decode($str);
的对象,然后在该对象中编辑您想要的内容,然后将其转换回JSON字符串( json_encode($obj);
)。
如果将它们存储在像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);