我创建了一个 ajax 函数,它通过从我的数据库中获取来返回我的项目价格。我确定我的 php 没有任何问题,但有时我两次得到相同的结果!jQuery$('.removemore___').click(function(e) { var item_id = $(this).attr('data-item'); var col_id = $(this).attr('data-col'); var value = $(this).attr('data-value'); if ($(this).attr('data-trash') == 'trash') { newPopuper('alert_sure__', 'flex', 'blackScreen'); $('.__aggtoyes').attr('data-item', item_id); $('.__aggtoyes').attr('data-col', col_id); $('.__aggtoyes').attr('data-value', value); } else { $.ajax({ type: "POST", url: "includes/chekavailableitem.php?remove", data: { item_id: item_id, col_id: col_id, value: value }, dataType: "text", success: function(response) { var iNum = parseInt(value); iNum--; if (response == 'done') { $('.value__cart[data-item=' + item_id + '][data-col=' + col_id + ']').html(iNum); $('.removemore___[data-item=' + item_id + '][data-col=' + col_id + ']').attr('data-value', iNum); $('.addmore___[data-item=' + item_id + '][data-col=' + col_id + ']').attr('data-value', iNum); if (iNum == 1) { location.reload(); } } else if (response == 'deleted') { location.reload(); } }, error: function() { $('#wrong-signup').html(': 102'); }, timeout: 5000 }); } $.ajax({ type: "POST", url: "includes/get_finalize_cart.php", data: {}, cache: false, async: true, dataType: "json", success: function(response) { // var final_price = $.parseJSON(response) console.log(response); if (response[0] == 'done') { $('.final_price__').html(response[1] + ' <span style="font-size: .786rem;font-weight: 400">تومان</span>'); } else { } }, error: function() { $('#wrong-signup').html(': 101'); }, timeout: 5000 }); e.stopImmediatePropagation(); return false;});我还将显示控制台页面的屏幕截图,以便您查看我的结果:
1 回答
梦里花落0921
TA贡献1772条经验 获得超6个赞
在调用之前,您无需等待chekavailableitem.php?remove
完成get_finalize_cart.php
。由于 AJAX 是异步的,后者可能会先处理,因此您将获得旧值的副本。
您应该将第二次$.ajax()
调用放在sucess:
第一次调用的函数中$.ajax()
,或者使用承诺。
- 1 回答
- 0 关注
- 68 浏览
添加回答
举报
0/150
提交
取消