商城ajax请求与异步替换示例

HTML代码(遍历出数据表中的数据),商品数量

<input id="num-<?php echo $product['id']?>" value="<?php echo $product['num']?>" onblur(<?php echo $product['id'],this.value ?>)>

商品单价

<span id="price-<?php echo $product['id']?>"><?php echo $product['price']?></span>

商品小计

¥<span id='product-<?php echo $product['id']?>'><?php echo $product['num']*$product['price']?></span>元

商品总计

$total += $product['num']*$product['price'];

js代码,输入数量失焦事件传递商品ID和数量

<script>
    function onblur(productid,num){
        //通过ajax将对应商品的数量修改操作
        var url = "changeNum.php";
        var data = {'productid':productid,'num':num};
        var success = function(response){
            //如果返回success,则用js替换HTML价格小计
            if(respons.errno == 0){
                var price = ($('#num-'+productid).val())*($('#price-'+productid).html());
                $('#product-'+productid).html(price);
            }
            
        }
        $.post(url,data,success,"json")
    }
</script>

PHP代码(changeNum.php)

<?php
    session_start();
    //完成对数据表的修改操作
    //1.接受参数
    //2.处理参数
    $productid = intval($_POST['productid']);
    $num = intval($_POST['num']);
    $userid = intval($_SESSION['userid']);
    
    //3.完成更新操作(以tp5为例)
    $result = Db::table('Cart')->where("id=$productid" and "userid=$userid")->update(['num' => "$num"]);
    
    //4.返回结果
    if($result){
        $response = array(
            'errno'   => 0,
            'errmsg'  => 'success',
            'data'    => 'true'
        )
    }else{
        $response = array(
            'errno'   => -1,
            'errmsg'  => 'fail',
            'data'    => 'false'
        )
    }
    echo json_encode($response)
?>

 

posted @ 2018-03-11 16:19  吃西瓜不吐西瓜籽  阅读(392)  评论(0)    收藏  举报
Live2D