我被ajax困住了...我有一个购物车,它有礼券, i)代码检查有效凭证,如果无效,则应显示消息"无效凭证"。 ii)如果凭证有效且在db中设置,则使用礼品金额更改购物车总额。
所以我设置了消息,但我不知道如何显示它。并且使用礼物我存储了新的购物车总数,即gift_cart_total.In db,我有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;
}
答案 0 :(得分:0)
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'];
或 使用变量和echo这里而不是数组