我正在为我的客户构建一个自定义电子商务网站,我决定在选择选项时使用Ajax来重新填充产品布局。因此...
我有颜色列表。红色,蓝色,绿色等。当他们单击其中一种颜色时,我想将颜色的ID传递给Ajax函数。它将转到PHP功能,在其中根据他们选择的颜色提取新产品列表。它返回带有所有产品的JSON对象。我可以处理的这部分。
所以这是我需要帮助的部分。我以前从未做过此事,所以我想知道,在返回JSON对象后,如何将产品表布局?显然,我无法将JSON对象传递回PHP,然后这样做,所以我只能使用jQuery编写json对象的foreach循环来重新创建我的产品表,然后用该内容替换我的容器div?
您通常会如何做到这一点?
对评论的回应:
好吧,我已经在初始页面加载的PHP中写了模板。我正在使用Ajax,因此我不必重新加载页面。
这是我的php
<?php foreach($products as $p): ?>
<div class="indProduct">
<?php foreach($images as $img): ?>
<?php if($img['productId'] == $p['id']): ?>
<div class="prodImg"><img src="<?php echo base_url(); ?>images/products/<?php echo $img['image']; ?>" alt="<?php echo $p['productTitle']; ?>" /></div>
<?php endif; ?>
<?php endforeach; ?>
<?php if($p['salePrice'] != 0.00): ?>
<div class="prodSaleBanner"></div>
<?php endif; ?>
<div class="prodTitle"><?php echo $p['productTitle']; ?></div>
<div class="prodPrice">
<?php if($p['salePrice'] != 0.00): ?>
$<?php echo number_format($p['salePrice'], 2, '.', ''); ?>
<?php else: ?>
$<?php echo number_format($p['price'], 2, '.', ''); ?>
<?php endif; ?>
<br />
<div class="original-price">
<?php if($p['salePrice'] != 0.00): ?>
$<span style="text-decoration:line-through;"><?php echo number_format($p['price'], 2, '.', ''); ?></span>
<span class="savings">
<?php
$savings = $p['price'] - $p['salePrice'];
echo 'SAVE: '.number_format($savings, 2, '.', '');
?>
</span>
<?php endif; ?>
</div>
</div>
<div class="prodAddButton">
<a href="<?php echo $p['id']; ?>" id="addToCartButton" class="storeButton">Add To Cart</a>
</div>
</div>
<?php endforeach; ?>
因此,我的计划是获取JSON对象,然后基本上使用JQuery和JSON而不是PHP重做Ajax成功请求中的所有上述代码。这是这样做的艰难方法吗?
我尚未使用IGNITE代码,但是我要做的就是使用模板引擎,例如小胡子,并用我要显示的信息定义我的模板,然后将JSON传递给您的模板只需使用jQuery渲染到屏幕。我解释了自己吗?
请检查Gocart。它基于CodeIgniter和开源GitHub-url。他们还具有产品目录。检查他们的源代码,可能会提供一些想法。