将数据发送到db后刷新div

时间:2014-08-19 18:31:34

标签: php html ajax refresh

我有一个显示某些产品总和的div:

<div class="total-price"><?php echo (!empty($cart)) ? $cart['total'] : '0'; ?> $</div>

使用ajax,我将产品添加到购物车... se页面没有重新加载。 将产品添加到购物车后如何刷新div?

我正在使用的ajax:

<script>
$('#order-to-cart').submit(function (e) {
    e.preventDefault();
    $.ajax({
        type: 'post',
        url: '/tdt/order',
        data: $(this).serialize(),
        success: function () {
            $(".success-message").slideDown().delay(5000).slideUp();
            $(".total-price").something...;
        }
    });
})
</script>

谢谢!

3 个答案:

答案 0 :(得分:1)

您可以这样做:

<script>
$('#order-to-cart').submit(function (e) {
    e.preventDefault();
    $.ajax({
        type: 'post',
        url: '/tdt/order',
        data: $(this).serialize(),
        success: function () {
            $(".success-message").slideDown().delay(5000).slideUp();
            var oldPrice = $('.total-price').text() * 1;
            var itemPrice = "15"; //the price that should be added
            $('.total-price').text(oldPrice + itemPrice);
        }
    });
})
</script>

答案 1 :(得分:0)

您应该从/ tdt / order路径返回一个总篮值。

在PHP脚本中,您应该使用所有必需信息回显一些JSON数据,例如

echo json_encode(array("totalPrice" => "£10.01"));

然后,您需要将此信息解析为Javascript并更新页面元素;

<script>
$('#order-to-cart').submit(function (e) {
    e.preventDefault();
    $.ajax({
        type: 'post',
        url: '/tdt/order',
        dataType: 'json',
        data: $(this).serialize(),
        success: function (data) {
            $(".success-message").slideDown().delay(5000).slideUp();
            $('.total-price').val(data.totalPrice);
        }
    });
})
</script>

上面的ajax请求会期望返回的数据是JSON,然后您将使用它来更新total-price元素。

答案 2 :(得分:0)

你可以使用像angularjs或knockoutjs这样的东西 - 你可以更新你的模型 - 你可以使用self.object.push(value),例如,     

    
      function OrderViewModel() {

var self = this; self.myOrder = ko.observableArray([]); self.addOrderItem = function () { $.ajax({ type: "post", url: "yourURL", data: $("#YOURFORMFIELDID").serialize(), dataType: "json", success: function (value) { self.myOrder.push(value); }, headers: { 'RequestVerificationToken': '@TokenHeaderValue()' } }); } } ko.applyBindings(new orderViewModel()); </script> </pre>