zoukankan      html  css  js  c++  java
  • ajax编写购物车遇到的问题

    使用超全局变量$_SESSION[]

    1.在文件开始时开启:session_start();

    2.$_SESSION[]输出结果是数组

    3.$_SESSION[]存在缓存中,清理缓存会清除数据

    4.可以用来存放常用变量,获取方式为$_SESSION[“键名”]

    验证登录

    用$_SESSION[]判断登录传过来的值是否为空,如果空则调回登录页面

    <?php
        session_start();
        if($_SESSION["uid"] ==""){
            header("location:login.php");
        }
    ?>

    当调用多次相同的方法时,可以将方法封装,以后调用文件即可

    js常用格式

    页面初始化

    window.onload = function(){
        //初始化页面
        initHTML();
    }

    function initHTML(){
        //创建对象
        var xhr=new XMLHttpRequest();
        //发起请求
        xhr.onreadystatechange =function(){
            if(xhr.readyState==4){
                var str = xhr.responseText;
                var arr=str.split("@");

    //将ajax传过来的值赋给方法
                table(arr[1]);
                p(arr[0]);
                
            }
        }
        xhr.open("post","php/index_php.php");
        xhr.setRequestHeader('content-type','application/x-www-form-urlencoded');
        //发送数据
        xhr.send("type=init");
    }

    问题:post传值后台接受空值

    1.漏写头文件

     xhr.setRequestHeader('content-type','application/x-www-form-urlencoded');

    2.传值的变量没有正确的获取到(检查获取变量获取方式)

    3.后台接受方式出错(以post传值用get接受)

    常用方法

    1.php数组转字符串

    将二维数组转换成字符串

    session_start();
        $arr=$_SESSION["data"];
        if(empty($arr)){
            echo "";
        }else{
            foreach($arr as $k=>$v){
                $attr[]=join(",",$v);
            }
            echo join("^",$attr);
        }

    2.js将字符串转换成二维数组

    function strToArr(str,fg1,fg2){
        //将字符串转成二维数组
        var temp = str.split(fg1),
            arr = [];
        
        for(var i = 0; i<temp.length;i++){
            arr[i] = temp[i].split(fg2);
        }
        //返回二维数组
        return arr;
    }

    注:

    var dianji=prompt("输入购买数量");

    prompt自带返回值,可以直接用

    array_splice($arr,$k,1);

    销毁数组中从第k个下标开始数1个的元素

    字符串拼接技巧

    先用“”分割前面的字符串,然后加 ++

    例: “name   变量  age  变量”

    “name   “+变量 +”     age    “+变量

    当一个页面需要处理多个ajax时

    传一个自定义属性,区分每个传过来的ajax

  • 相关阅读:
    js五种继承优缺点
    golang---panic/recover
    golang---应用OOM
    golang--- context
    常用工具及日常
    golang --- pipline
    golang 竞争---翻译
    深入golang之---goroutine并发控制与通信
    rpm打包
    k8s-operator指北
  • 原文地址:https://www.cnblogs.com/diverman/p/8485920.html
Copyright © 2011-2022 走看看