如何调用函数并使用ajax加载视图的一部分?

时间:2015-11-24 08:41:23

标签: javascript jquery ajax

我试图隐藏一个div并通过调用ajax中的函数来加载另一个div,但它没有将我重定向到该函数。我只是想加载div而不刷新页面。

$apnsCert = dirname(Yii::app()->request->scriptFile).'/my_certificate_dev.pem';

控制器:

<script type="text/javascript">
 function checkVoucher(){
var voucher_number = $("#voucher_number").val();

$.ajax({
    type: "POST",
    url: "<?php echo base_url('cart/gift_validate'); ?>",
    data: {gift_voucher_number:voucher_number} , 

    success: function(data){
        $('#gift_msg').html('<span id="gift_msg" style="display:block;">'+data+'</span>');
        $('.order_details').html('').hide();
        $('.cart_table').html('');
        $('.cart_table').load('cart/ajax_cart_view');
        return false;
    },
});
}

</script> 

查看:(包含需要在同一页面上加载的div)

public function ajax_cart_view()
{   
    $gift_data = $this->cart_model->getgiftvoucher();
    if($gift_data){
        $this->data['giftDiscount'] = $giftData['amount'];
        $this->data['giftID']       = $giftData['id'];
    }
    $this->load->view('cart/ajax_cart',$this->data);
}

2 个答案:

答案 0 :(得分:0)

看起来不推荐使用success方法。 http://api.jquery.com/jquery.ajax/ 关闭括号后,将它传递给.done():

$.ajax({
type: "POST",
url: "<?php echo base_url('cart/gift_validate'); ?>",
data: {gift_voucher_number:voucher_number} , 
}).done(
 function(data){
    $('#gift_msg').html('<span id="gift_msg" style="display:block;">'+data+'</span>');
    $('.order_details').html('').hide();
    $('.cart_table').html('');
    $('.cart_table').load('cart/ajax_cart_view');
    return false;
})

答案 1 :(得分:0)

使用以下内容更改您的ajax调用,因为您的成功函数存在错误: -

$.ajax({
    type: "POST",
    url: "<?php echo base_url('cart/gift_validate'); ?>",
    data: {gift_voucher_number:voucher_number} , 

    success: function(data){
        $('.order_details_ajax').html('<span id="gift_msg" style="display:block;">'+data+'</span>');
        $('.order_details').html('').hide();
        $('.cart_table').html('');
        $('.cart_table').load('cart/ajax_cart_view');
        return false;
    },
});
}