在JSON中返回数据的最佳方式

时间:2016-07-08 15:14:06

标签: jquery html json woocommerce

大家好我使用ajax来修改我网站上的div

我有这个功能完美,但我有一个问题,以获得返回的值

updatecart = function(qty, id_product) {
    var currentVal, data, id, item_hash, request;
    currentVal = void 0;
    id = void 0;
    data = void 0;
    item_hash = void 0;
    currentVal = parseFloat(qty);
    id = parseInt(id_product);
    request = $.ajax({
      url: ajax_object.ajax_url,
      method: 'POST',
      data: {
        quantity: currentVal,
        id_product: id,
        action: 'update_my_cart',
        dataType: "json"
      },
      success: function(html, data) {
        var array_fields, fields, pos, total_amount;
        pos = html.indexOf("[");
        fields = html.slice(pos + 1, -1);
        array_fields = fields.split(',');
        id = parseInt(array_fields[0].replace(/\"/g, ""));
        total_amount = (array_fields[1] + ',' + array_fields[2]).replace(/[\\"]/g, '');
        $('.total' + id + ' .woocommerce-Price-amount').replaceWith($(total_amount));
        $('.amount_cart .amount').replaceWith('.amount', html);
        console.log('update cart');
      },
      error: function(errorThrown) {
        console.log(errorThrown);
      }
    });   };

在这种情况下返回html和数据。

data =“success”

和html是

<div class="total_purchase">
  <div class="col-xs-12">
    <div class="subtotal_cart">
      <span class="item_purchase">
        Sub-total:      </span>
      <span class="amount_cart">
        <span class="woocommerce-Price-amount amount">15,40&nbsp;<span class="woocommerce-Price-currencySymbol">&euro;</span></span>      </span>
    </div>
  </div>

<div class="col-xs-12">
  <div class="wc-proceed-to-checkout">

<a href="http:../checkout/" class="checkout-button button alt wc-forward">
    Checkout</a>
  </div>
</div>

</div>

我必须剪切并使用字符串来获取我的日期,并在结尾处替换div。

即使在最后一行,我也有问题要更换数据

$('.amount_cart .amount').replaceWith('.amount', html);

什么是最好的方式或以其他方式返回日期以获取我需要的信息。

感谢您的建议!

1 个答案:

答案 0 :(得分:0)

服务器端你必须用json_encode()

返回日期
json_encode(array( 'mydate' => $my_date ));

如果你想在你的HTML中显示日期,你必须在你的ajax成功中这样做。

success: function(json) {
    $('.amount_cart .amount').html(json.mydate);
}