2016-12-28 9 views
0

私は、主にPHPHTMLを使って簡単なショッピングサイトを作ろうとしています。 PHPの内部には、classからオブジェクトが作成され、そのオブジェクトはarrayにあります。 HTMLの中に、PHP'sforeachを使用して、それぞれobject's photo and nameを印刷しています。 これはショッピングウェブサイトなので、購入するアイテムの数を入力できるアイテム写真の下にFORMを追加しました。 今、ngularJSを使って、私がしたいことは: 1)値(必要な項目の数)が0の場合、何も起こらず、Webページは何も印刷しません。 2)値が0より大きい場合は、formの横に価格*を印刷して、その特定のアイテムの合計金額をリアルタイムで確認することができます。ここで PHP内部の角型JavaScript内部では

私のコードがある

..私は数の積を印刷したい

<?php 
class Stock{ 
    public $name; //in real program it is private. 
    public $price; 
} 

//Create objects and initialize them by giving each of them name and price 
//Assume there are 3 objects 
$items = array($object1, $object2, $object3); 
?> 

//now in HTML code 
<form method="POST" action="order.php"> 
    <?php foreach($items as $item): ?> 
     <!--Print name and price of each --> 
    <input type="text" value="0" name="<?php echo $item->name; ?>"> {{ <!--*****--> }} 
<?php endforeach ?> 

*右隣のフォームに値が、私は内部ng-model="quantity"を追加しようとした0より大きい場合にのみ、アイテムの価格入力タグを書き、{{ quantity * $_POST[$item->name] }}と書きました。しかし、これは完全には機能しません。これは商品を印刷しますが、商品がforeachの中にあるため、商品のformの値を変更すると、他の商品のフォームの値も変更されます。特定の商品にのみangularJSをどのように適用できますか?

+0

2行目:私は – jun

+0

を意味し、私はに意味しました"今はHTMLの中で、PHPのforeachを使って各オブジェクトの名前と価格を印刷しています。" – jun

答えて

1

あなたのループはこれを行うには、角にある必要があります。あなたがモデルとしてそれを結合することができるので、

..

FORM.PHP

<div ng-app="appModule"> 
<form action="order.php" method="post" ng-controller="orderFormController"> 
    <div ng-repeat="item in itemList"> 
     {{ item.name }} (price - {{ item.price }}): <input type="text" value="0" name="{{item.name}}" ng-model="qty[item.name]" /> 
     Total: <span ng-if="qty[item.name] > 0">{{ item.price*qty[item.name] }}</span> 
    </div> 
</form> 
</div> 

MODULE.JS

var app = angular.module("appModule", []); 
app.controller("orderFormController", function($scope) { 
    // $scope.itemList - ajax your item list here 
    $scope.itemList = [ 
     {name: 'Pencil', 'price': 10}, 
     {name: 'Paper', 'price': 2}, 
     {name: 'Folder', 'price': 13}, 
    ]; 
}); 
-1

入力タグ内の値を変更します。 W3 SchoolsのHTML入力値属性を参照してください。

<input value='<?php // your php code ?>' /> 

input value w3c schools

input value w3c schools example

+0

Plea se [リンクのみの回答を避ける](http://meta.stackoverflow.com/tags/link-only-answers/info) – Quentin

+0

W3C(Web標準を作成する者)とW3Schoolsを混同しないようにしてください(外部標準へのリンク以上の回答は削除される可能性があります)。 (低品質のチュートリアルの提供者) – Quentin

+0

私の悪い答えを更新するあなたはコメントしてthoを避けることができますが、何でも。 – mnemosdev