使用javascript/jQuery动态更改内容
Dynamically change content using javascript/jQuery
我有一个虚拟商店和一个购物篮。此外,我在每一页都有一个信息说明,说明一个篮子里有多少产品和总金额(我的篮子区域)。
问题是,篮子使用jQuery来更新和删除元素,但"我的篮子"区域在每个页面背后的数据库中有一个简单的查询,它不更新,除非在页面刷新。
是否有任何解决方案来同步篮子javascript逻辑与"我的篮子区域"?
alex的回答简短但切中要害。
您可以使用XmlHttpRequest向服务器端页面发出GET请求,在该页面中返回一个表示购物篮产品的JSON字符串。然后可以使用JQuery在页面的DOM中创建这些元素。
我认为JQuery本身有某种XmlHttpRequest的抽象
我不知道你在使用哪个商店,但你必须弄清楚它。下面是一个例子。
$('.addToCart').click(function(){
//Whatever stuff
$.get('updateCart.php?action=add&item=' + $(this).attr('id') + '&time=' new Date().getTime(), function(data)
{
alert(data); //the response
}
});
是的,你可以让你的JavaScript代码动态更新篮内页也发送更新事件到服务器通过"ajax"。jQuery提供了各种有用的ajax实用程序来完成这类更新。
我建议服务器拥有篮子的"规范"版本,所有更新操作都接收回篮子当前内容的副本,并使用该副本来调整页面上显示的内容。这是因为用户是混乱的,你永远不知道他们什么时候会使用"在新标签/窗口中打开"。对服务器的更新是获得最新信息的机会。
例如,如果用户删除一个项目,这个伪代码:
$.ajax({
url: "url_of_basket_handler",
data: {remove: productId},
success: updateBasketOnSuccess,
error: basketErrorHandler
});
…其中updateBasketOnSuccess
是所有处理程序使用的函数,用于根据响应更新篮中显示的内容:
function updateBasketOnSuccess(data) {
// Use the given data to update the display
}
…类似地,basketErrorHandler
处理告诉用户ajax调用中出现错误:
function basketErrorHandler(jxhr, statusCode, err) {
// Tell the user something went wrong
}
我可能会让篮子处理程序回复使用JSON列出篮子内容和其他元数据。
最佳AJAX参考:
http://net.tutsplus.com/tutorials/javascript-ajax/5-ways-to-make-ajax-calls-with-jquery/var ajax_load = "<img src='img/load.gif' alt='loading...' />";
var loadUrl = "getbasket.php";
$("#mybasket").html(ajax_load).load(loadUrl, null);
然后getbasket.php只需要从db中获取数据并输出(echo/print)篮子html。
<?php
//Connect to mysql db and query
$dbvariables = mysql_fetch_array(...);
?>
My Basket
Items: <?php echo $dbvariables[item_count]; ?>
<?php
for($i=1;$i<=$dbvariables[item_count];$i++){
//Show items in basket..
}
?>
或者类似的东西,我不知道你的篮子长什么样。
再看这里http://net.tutsplus.com/tutorials/javascript-ajax/5-ways-to-make-ajax-calls-with-jquery/
您希望使用XmlHttpRequest,或者在jQuery中称为AJAX函数。
只需将您的购物车状态返回到服务器(添加/更新/删除),然后在数据库中更新用户的购物车。
- 动态Javascript表单不起作用
- 从脚本中的动态(javascript)网页获取信息
- 创建动态javascript对象
- HTML 5 帮助.使用websql数据库中的动态javascript渲染选项
- 更改动态 JavaScript 数据
- 将动态javascript变量附加到HTML标记.InnerHTML&insertAdjacentHTML都不正
- addEvenListener不'我不研究动态javascript
- 使用加载时的Codeigner动态javascript->看法
- JSON动态Javascript解析”;未定义”;
- jsf应用程序中的动态javascript
- UpdatePanel中自定义控件内的动态javascript
- 使用wro4j创建动态javascript捆绑包
- 如何在PHP中包含动态Javascript页面的静态HTML结果
- 动态JavaScript与rail一起徘徊
- 在 Symfony 2 中生成动态 JavaScript 的正确方法
- For 循环中的动态 Javascript 条件
- 如何确定调用动态 JavaScript 文件的页面和 ASP.net 中的用户
- 是否可以缓存具有指向动态JavaScript的链接的HTML页面
- 动态 javascript,用于检测复选框是否被选中并禁用相应的输入字段
- 如何制作具有键和值组的动态JavaScript数组