【发布时间】:2016-06-23 05:46:02
【问题描述】:
我是个新手,所以请原谅我的无知。
我有一个带有 php 购物车的网站,当将某些东西添加到购物车时,它会刷新到购物车页面。我想修改它,以便在添加产品时,购物车在后台更新,产品页面不会刷新,而是更新具有唯一 ID 的各种 div 中的 html。
我已经设法实现了这一点,但我确信必须有一种更简单的方法,因为我的解决方案涉及一个循环,该循环遍历产品页面上的所有表单,而不仅仅是从提交的表单中更新 div。
这是我的 JavaScript,它位于产品页面的 <head> 标记内:
<script>
$(document).ready(function(){
$("[id^=ectform]").ajaxForm({ // any form id beginning with ectform
success:function(){
$.ajaxSetup({ cache: false });
$("#div1").load("jsrefresh.php"); // update html in div in minicart
for (i = 0; i < count; i++) { // count holds the number of forms on the page
var d = "#glc" + i; // div id to update
var f ="#gld" + i; // another div id to update
var e = eval("z" + i); // product id
$(f).html('loading...').load("jsrefreshincart.php",{ prodynum: e, divno: d});
};
}
});
});
</script>
该脚本利用 ajaxForm 等待任何 ID 以 ectform 开头的表单成功提交。成功后,表单将提交到更新购物车内容的购物车脚本,然后使用 ajax .load 调用 jsrefresh.php 将更新后的 html 回显到显示在屏幕顶部的迷你购物车中的 div .然后(这是需要正确执行的部分)jsrefreshincart.php 在循环中被调用(变量 count 保存页面上的表单总数)它更新页面上所有表单中所有 div 中的 html,并提供有关如何操作的信息购物车中有很多物品以及它们的价格。
是否有任何方法可以在没有循环的情况下执行此操作,因为只有提交的表单中的 div 需要更新?
【问题讨论】:
标签: javascript php jquery html ajax