0

Virtuemart ショップに、製品のリストを含む製品ビューがあります。これらの製品は foreach ループによって生成されます。製品リストが PHP コードでどのように表示されるかの例を次に示します。

<div id="products">
<?php //Loop START
$counter = 0;
foreach ( $this->products as $product ) { 
$ProductName = $product->product_name;
$ProductID = $product->virtuemart_product_id;
$ProductSalesPrice = $product->prices['salesPrice'];
$ProductDiscount = $product->prices['discountAmount']; ?>
<div class="product">
<div class="nameHeader <?php echo $counter ?>"><?php echo $ProductName ?></div>
<div class="productID <?php echo $counter ?>"><?php echo $ProductID ?></div>
<div ID="salesprice<?php echo $counter ?>" class="salesprice <?php echo $counter ?>"><?php echo $ProductSalesPrice ?></div>
<div ID="discount<?php echo $counter ?>" class="discount <?php echo $counter ?>"><?php echo $ProductDiscount ?></div>
</div>
<?php $counter++; } //Loop END ?>
</div>

「静的な」PHP コードの代わりに ajax を使用して価格データを表示する方法を探しています。これにより、Joomla コンポーネント「JotCache」によって価格がキャッシュされなくなります。

ajax を使用し、製品 ID を POST データとして PHP スクリプトに送信することで、単一の製品でこれを行う方法は知っていますが、上記の例のような製品のループ全体でこれを行う方法はわかりません。

誰も方法を知っていますか:

  1. ループ内の製品のすべての製品 ID を POST データとして外部 PHP スクリプトに送信します。
  2. 計算されたすべての価格データ (製品 ID に基づく販売価格と割引) を PHP スクリプトから取得し、各製品の販売価格と割引を div タグ内に入力します。たとえば、「salesprice0」、「discount0」、「salesprice1」などの IDと「割引1」..など?
4

2 に答える 2

1

(123,456,789) のようにコンマ (,) で区切られた文字列として製品 ID を保持し、それを ajax ページに送信します。

ajaxページで、PHPのexplode関数を使って配列に変換し、商品の価格を取得します。

そして、すべての製品価格を (123:20:15,456:40:30,789:50:35) のような文字列にします。

単一の製品 ID と価格が配列に変換されるように、javascript 関数をコンマ (,) で分割して使用します。 Array(

[0]=>123:20:15,
[1]=>456:40:30,
[2]=>789:50:35

) ここで、各配列値で(:)によって同じjavascript分割関数を再度実行すると、配列は次のように作成されます

Array(
[0]=>123,
[1]=>20,
[2]=>15
)

それが役立つことを願っています

于 2013-06-04T10:40:29.873 に答える