簡體   English   中英

如何在視圖中顯示消息並在Codeigniter中使用Ajax替換div?

[英]How to show message in view & replace a div using ajax in codeigniter?

我被ajax困住了……我有一個購物車,里面有禮券,我)代碼檢查有效的禮券,如果無效,那么它應該顯示消息“無效的禮券”。 ii)如果憑證有效且已在db中設置,則使用禮品金額更改購物車總額。

所以我已經設置了消息,但我不知道如何處理它。並且使用禮物我已經存儲了新的購物車總計,即gift_cart_total。在數據庫中,我有cart_total,voucher,gift_cart_total的字段。我如何刪除我的原始購物車div並使用gift_cart_total顯示新的div。

視圖:

<div class="giftvoucher">
   <input type="text" name="gift_voucher_number" id="gift_voucher_number" placeholder="Voucher Number" value="" size=18>
   <input type="text" name="gift_voucher_pin" id="gift_voucher_pin" placeholder="Voucher Pin" value=""size=18>
   <input type="button" value="Apply" onclick="checkGiftVoucher()" id="apply_button">
</div>
<script type="text/javascript">
function checkGiftVoucher(){
    var gift_voucher_number = $("#gift_voucher_number").val();
    var gift_voucher_pin = $("#gift_voucher_pin").val();

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

          success: function(data){
             return false;

         },
        });
  }

   </script> 

控制器:

public function giftvalidate(){
    if(isset($_POST['gift_voucher_number']) && $_POST['gift_voucher_number'] != '' && isset($_POST['gift_voucher_pin']) && $_POST['gift_voucher_pin'] != ''){           
        $app21_url      = APP21_URL;
        $country_code   = COUNTRY_CODE;

        $gift_voucher_number    = $_POST['gift_voucher_number'];
        $gift_voucher_pin   = $_POST['gift_voucher_pin'];

        $result         = $this->cart_model->checkValidGift($gift_voucher_number, $gift_voucher_pin, $app21_url, $country_code);
        if($result['databool'] && !empty($result['dataValue'])){

            $discount   = $result['dataValue']['AvailableAmount'];
        }else{

            $gift_flash = $result['datamsg'];
        }

    }elseif(isset($_POST['gift_voucher_number']) && (empty($_POST['gift_voucher_pin']) || $_POST['gift_voucher_pin'] =='')){            
        $result['datamsg']  = "Please enter the gift voucher pin";  
    }

    echo json_encode($result);
}

型號:

function checkValidGift($gift, $gift_pin, $app21_url, $country_code){

    $returndata = array();
    $dataValue  = array();
    $datamsg    = '';
    $databool   = false;
    $cartTotal  = $this->getTotalCart();
    $GVValid_url = some url here;

    $headers = array(
        "GET HTTP/1.1",
        "Content-type: text/xml",
        "Accept: Version_2.0"
    );

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $GVValid_url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
    curl_setopt($ch, CURLOPT_TIMEOUT, 900);
    curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
    curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);

    $data = curl_exec($ch);

    if (curl_errno($ch)) {

        $result = 'cURL ERROR -> ' . curl_errno($ch) . ': ' . curl_error($ch);


        $databool = false;
        $datamsg  = 'Gift Voucher & pin are not Valid';

    }else if($gift='100038' && $gift_pin='7655'){
        $gift='100038';
        $AvailableAmount = '200';

        if ($AvailableAmount > $cartTotal) {
            $gift_cart_total = $cartTotal;
        }else{
            $gift_cart_total = $cartTotal-$AvailableAmount;
        }


        if(!$this->session->userdata('s_uid') || $this->session->userdata('s_uid')==''){
            $user_type = 'Guest';
            $user_id   = $this->session->userdata('__ci_last_regenerate');
        }else{
            $user_type = 'Member';
            $user_id = $this->session->userdata('s_uid');
        }

        $insertData = array(
                            'user_id'   => $user_id,
                            'gift_id'   => $gift,
                            'pin'       => $gift_pin,
                            'gift_amount'    => $AvailableAmount,
                            'gift_cart_total' =>$gift_cart_total
                        );

        $table      = 'cart_mast';
        $sql        = "SELECT * FROM $table WHERE user_id = '{$user_id}'";

        $query      = $this->db->query($sql);


        if($query->num_rows() != 0){
            $carts = $query->result_array();
            foreach ($carts as $row) {
                $this->db->where('user_id', $user_id);
                $this->db->update($table, $insertData);
                //echo $this->db->last_query(); exit;
            }
        }else{
            $this->db->insert($table, $insertData);
        }

        $dataValue = array(
                            'giftId'          => $gift,
                            'AvailableAmount' => $AvailableAmount,
                            'gift_cart_total' => $gift_cart_total
                       );

        $databool = true;
        $datamsg  = '';
    }
 else{

        $xml = new SimpleXMLElement($data);

        if(count($xml) <= 2 && !empty($xml->ErrorCode)){

            $databool = false;
            $datamsg  = 'The voucher has expired';

        }else{

            $VoucherNumber   = (int)($xml->VoucherNumber);
            $gift_pin        = $pin;
            $ExpiryDate      = (int)($xml->ExpiryDate);
            $AvailableAmount = (int)($xml->AvailableAmount);

            $AvailableAmount = number_format($AvailableAmount, 2);
            $user_id    = $this->session->userdata('session_id');

            $table      = 'gift_voucher';
            $sql        = "SELECT * FROM $table WHERE user_id = '{$user_id}'";
            $query      = $this->db->query($sql);
            $insertData = array(
                                'user_id'   => $user_id,
                                'gift_id'   => $VoucherNumber,
                                'pin'       => $gift_pin,
                                'amount'    => $AvailableAmount
                            );

            if($query->num_rows() != 0){

                $carts = $query->result_array();

                foreach ($carts as $row) {
                    $this->db->delete($table, array('user_id' => $user_id)); 
                    $this->db->insert($table, $insertData);
                }

            }else{
                $this->db->insert($table, $insertData);
            }

            $giftId = $this->db->insert_id();


            $dataValue = array(
                                'giftId'          => $giftId,
                                'VoucherNumber'   => (!empty($ss_id))? $ss_id:$VoucherNumber,
                                'AvailableAmount' => $AvailableAmount
                           );

            $databool = true;
            $datamsg  = '';

        }

    }

    curl_close($ch);

    $returndata['databool']   = $databool;
    $returndata['datamsg']    = $datamsg;
    $returndata['dataValue']  = $dataValue;

    return $returndata;
}

ise .html()替換div的整個html或使用append()追加到div

success: function(data){

    $("id or class of the div where you want to display the message").html(data);
    return false; 
},

由於您只有一個回應,請更改此

echo json_encode($result);

echo $result['datamsg'];

或在此處使用變量並回顯而不是數組

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM