2017-04-23 13 views
0

私はPHP:編集した行と更新JSファイル

productFactory.js

製品のリストとその詳細と

と呼ばれる、次のAngularJSのファイルを持っていると私は、製品の1を更新したいです。 PHPで

"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 
$script="SOME_CONTENT"; 
$fileName="productFactory.js"; 
file_put_contents($fileName, $script); 
?> 

を書くためにこのスクリプトを実行することができますどのように私はそれの「商品コード」によってひとつの製品を更新していますか? (それはあなたがproductFactory.products変数に持つ、単純なJSONファイルである可能性があり、いくつかのデータベースに製品を保管することです。

彼らはJSONに格納されていた場合、あなたはPHPでファイルをロードし、それを解析し

答えて

1

ベストな方法json_decode($str);のオブジェクトを作成して、そのオブジェクトの内容を編集した後、(json_encode($obj);)のJSON文字列に変換するだけです。

PHPをMySQLのようなデータベースに保存すると、 (指定された製品IDに対してUPDATEクエリを呼び出す)。

P編集要求を処理するHPの例:

$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); 
+0

はい、MySQLは簡単でPDOを使用できます。私はAngularJSでサイト全体を構築しようとしています。私はJSONファイルを作成し、それをproductFactory.products変数に添付できます。それではどうすればJSONファイルを編集できますか?最も簡単なPHPスクリプトは何ですか?新製品の詳細はPOSTデータとしてPHPファイルに送られ、JSONをループしてproductIdで特定の製品の詳細を更新する必要があります。 –

+0

これを行うための簡単な例を追加しました。編集された答えをご覧ください –

関連する問題