[英]How to show message in view & replace a div using ajax in codeigniter?
I am stuck with ajax... I have a cart and it has gift vouchers, i) the code checks for valid voucher and if its not valid then it should show message "invalid voucher". 我被ajax困住了……我有一个购物车,里面有礼券,我)代码检查有效的礼券,如果无效,那么它应该显示消息“无效的礼券”。 ii) If voucher if valid and is set in db,then change the cart total using gift amount. ii)如果凭证有效且已在db中设置,则使用礼品金额更改购物车总额。
So I have set the message , but i dont know how to dislay it.And Using gift i have stored the new cart total ie gift_cart_total.In db, i have fields for cart_total,voucher , gift_cart_total.How can i remove my original cart div and show new div using gift_cart_total. 所以我已经设置了消息,但我不知道如何处理它。并且使用礼物我已经存储了新的购物车总计,即gift_cart_total。在数据库中,我有cart_total,voucher,gift_cart_total的字段。我如何删除我的原始购物车div并使用gift_cart_total显示新的div。
View: 视图:
<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>
Controller: 控制器:
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);
}
Model : 型号:
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()
to replace whole html of the div or use append()
to append to the div 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;
},
since you have only one response, change this 由于您只有一个回应,请更改此
echo json_encode($result);
to 至
echo $result['datamsg'];
or use a variable and echo here instead of array 或在此处使用变量并回显而不是数组
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.