javascript - PHP:使用编辑的行更新 JS 文件

标签 javascript php angularjs

我有以下 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/

相关文章:

javascript - 检测暂停和 'done' 按钮点击 jwplayer7 的 iphone

javascript - Internet Explorer 表示对象不支持此属性或方法

PHP-JavaScript : Monitor changes of a file

php - 获取似乎与我正在做的事情无关的 MySQL 错误

angularjs - 通过 eventRender Fullcalendar 从 angularjs 指令渲染

javascript - 为什么 ng-style 函数应用了两次?

javascript - AngularJS - 提高服务调用和数据绑定(bind)性能

javascript - 在 jQuery 或普通 Javascript 中的操作之间暂停

php - 使用 attr ("id"检索 div 的 id );不管用

javascript - For 循环在 Javascript 中多次追加对象