ajax成功后...如何在不刷新页面的情况下重新检查php if-else条件

时间:2018-12-20 05:07:22

标签: php ajax codeigniter

当我单击“添加到购物车”按钮时... ajax已成功在数据库中添加产品。结果,他应该再次检查php if-else条件。但事实并非如此。但是,刷新页面后,这会导致重新连接到db,信息更新。这是php代码:

<?php 
if(isset($products) && is_array($products) && count($products)){
$i=1;
foreach ($products as $data) { ?>

<div class="col-lg-3 col-md-4 col-sm-6" ">
  <div class="tile">
   <img class="prod_image"  src="<?php echo base_url(); ?>../upload/<?php echo $data['image'] ?>">
     <div class="prod_detail">
         <p class="prod_name"><?php echo $data['name'] ?></p>
         <p class="prod_name"><?php echo $data['weight'] ?></p>
         <p class="prod_name"><?php echo $data['price'] ?></p>

         <?php                

         //if product already add in cart
         $isincart = get_product_from_cart($data['id']);

         if($isincart < 1) { ?>

                    <button class="btn btn-primary" onclick="addtocart(<?= $data['hid'];?>,<?= $data['weight'];?>,<?= $data['price'];?>)">Add to cart</button>


         <?php } if ($isincart > 0){

          ?>

         <div id="prod_quant" class="add_btn_sec">
             <form id="myform" method="POST" action="javascript:void(0)">
                 <input type="submit" onclick="quantitydec(<?= $data['id']; ?>)" value="-" class="qtyminus" field="quantity<?= $data['id']; ?>">

                 <input type="text" id="quantity<?= $data['id']; ?>" name="quantity<?= $data['id']; ?>" value="<?php echo ($isincart) ; ?>" class="qty">

                 <input type="submit" onclick="quantityinc(<?= $data['id']; ?>" value="+" class="qtyplus" field="quantity<?= $data['id']; ?>">
            </form>
         </div>


        <?php 
          }
          ?>

     </div>
  </div>
</div>

<?php } $i++; } ?>

和ajax脚本在这里

<script type="text/javascript">
      function addtocart(p_id,p_weight,p_price)
    {   
          $.ajax({
                  type: "POST",
                  url: "<?php echo site_url('index.php/addtocart/addtocart_ajax');?>",
                  data: {'id': id, 'name': name, 'p_wight': p_weight, 'p_price': p_price},
                  dataType: 'JSON',
                    success: function(response){                    
                        /*do something here*/ 
                    }
                });
    }

  </script>

有人可以建议我如何在不刷新页面的情况下重新检查“ if($ isincart <1)”条件吗?

1 个答案:

答案 0 :(得分:0)

首先, PHP -是服务器端语言。在将html文件发送到浏览器之前,将在服务器上解释PHP代码。请注意,浏览器无法解释php代码。

现在 AJAX -Ajax是一种客户端脚本,可以与服务器/数据库进行通信,而无需刷新整个页面。

我为Ajax读的最好的定义是“与服务器交换数据,并更新网页的一部分,而无需重新加载整个页面的方法。”

现在要问的问题是,如果要在AJAX成功后运行php代码,则需要发送另一个AJAX请求作为第一个AJAX请求的成功功能。

希望这很有道理。