学习笔记1

1tp在网页上的报错不是英文 是很奇怪的文字
solution:
打开my.ini
找到【mysqld】
port=3306
explicit_defaults_fortimestamp=True
找到【mysqld】
language = d:/wamp/bin/mysql/mysql5.6.17/share/english

2var_dump()乱码
solution:header(”content-type:text/html;charset=utf-8”);

3四级联动(实验室)功能
控制器

<?php
namespace Home\Controller;
use Think\Controller;
class IndexController extends Controller {
    public function index(){
     //实验室地域
        header("Content-type:text/html;charset=utf-8");
        $d=D('LabTypeRegion');
        if(IS_POST){

            if($_POST['region_id']){
                $region_id = $_POST['region_id'];
                $condition['pid'] = $region_id;
                $list = $d->where($condition)->select();
                // echo json_encode($list);
                $this->ajaxReturn($list);
            }
        }else{

            $condition['pid'] = array('neq',0);
            $condition['level'] = 1;
            $list = $d->where($condition)->select();
            $this->assign('list',$list);

        }
        //实验室地域

        $this->display();
}


}
?>

VIEW

<script src="http://code.jquery.com/jquery-1.4.1.min.js"></script>
<script src="http://code.jquery.com/jquery-1.4.1.js"></script>
<meta charset="UTF-8">
<div class="form-group">
    <label class="col-sm-2">实验室地域</label>
  <div class="btn-group" style="margin-bottom: 20px;">
    <select name="region1_id" id="region_0_0" onchange="setregion(0,0)" class="form-control" style="display:inline; width:auto;">
        <option name="selected" selected='selected' value="-1">城市</option>
        <volist name="list" id="vo">
            <option value="{$vo['id']}" <if condition="$row['region1_id'] eq $vo['id']">selected='selected'</if>>{$vo['title']}</option>
        </volist>
    </select>
    <select name="region2_id" id="region_1_0" onchange="setregion(1,0)" class="form-control"  style="display:inline; width:auto;">
        <option name="selected" selected='selected' value="-1">学校</option>
        <!-- 保持上回选中 -->
        <if condition="$row['region2_id'] neq NULL">
          <php>
              $region2 = D('LabTypeRegion')->where(array('id'=>$row['region2_id']))->getField('title');
          </php>
          <option value="{$row['region2_id']}" selected='selected' style="display:none;">{$region2}</option>
        </if>
        <!-- 保持上回选中 -->
    </select>
    <select name="region3_id" id="region_2_0" onchange="setregion(2,0)" class="form-control"  style="display:inline; width:auto;">
        <option name="selected" selected='selected' value="-1">学院</option>
        <!-- 保持上回选中 -->
        <if condition="$row['region3_id'] neq NULL">
          <php>
              $region3 = D('LabTypeRegion')->where(array('id'=>$row['region3_id']))->getField('title');
          </php>
          <option value="{$row['region3_id']}" selected='selected' style="display:none;">{$region3}</option>
        </if>
        <!-- 保持上回选中 -->
    </select>
    <select name="region4_id" id="region_3_0" class="form-control"  style="display:inline; width:auto;">
        <option name="selected" selected='selected' value="-1">实验室</option>
        <!-- 保持上回选中 -->
        <if condition="$row['region4_id'] neq NULL">
          <php>
              $region4 = D('LabTypeRegion')->where(array('id'=>$row['region4_id']))->getField('title');
          </php>
          <option value="{$row['region4_id']}" selected='selected' style="display:none;">{$region4}</option>
        </if>
        <!-- 保持上回选中 -->

    </select>
  </div>
</div>
<script type="text/javascript">//设置默认,页面加载时恢复默认选项。
    function region_default() {
        $("option[value='-1']").attr('selected', 'selected');
    }
    function setregion(num, address_id) {
        var next = num + 1;
        $.ajax({
            type: 'POST',
            //设置json格式,接收返回数组。
            dataType: 'json',
            url: '',
            //ajax传递当前选项的value值,也就是当前的region_id。
            data: 'region_id=' + $('#region_' + num + '_' + address_id).val(),
            success: function(msg) {
                //如果返回值不为空则执行。
                if (msg != null) {
                    var option_str = '';
                    //循环书写下一个select中要添加的内容。并添加name标记。
                    for (var i = 0; i < msg.length; i++) {
                      option_str+='<option name="region_'+next+'"value="'+msg[i].id+'">'+msg[i].title+'</option>';
                       console.log(option_str);
                    }
                    //删除下一个select中标记name为next的内容。
                    console.log("option[name='region_" + next + "']");
                    $("option[name='region_" + next + "']").remove();
                    //向下一个select中添加书写好的内容。
                    console.log('#region_' + next + '_' + address_id);
                    $('#region_' + next + '_' + address_id).append(option_str);
                } else {
                    //如果返回值为空,则移除所有带标记的option,恢复默认选项。
                    for (var i = next; i <= 4; i++) {
                        $("option[name='region_" + i + "']").remove();
                    }
                }
            }

        })
    }
</script>
<!-- 地域 -->

config.php

<?php
return array(
    //'配置项'=>'配置值'
      'DB_TYPE'               => 'mysql',     // 数据库类型
     'DB_HOST'               => 'localhost', // 服务器地址
     'DB_NAME'               => 'imooc',          // 数据库名
     'DB_USER'               => 'root',      // 用户名
     'DB_PWD'                => '123456',          // 密码
     'DB_PORT'               => 3306,        // 端口



     'SHOW_PAGE_TRACE'=>true,
      //'TMPL_EXCEPTION_FILE'   =>  'Public:Exception',
      //'LAYOUT_ON' => true,
);

sql文件

-- phpMyAdmin SQL Dump
-- version 4.1.14
-- http://www.phpmyadmin.net
--
-- Host: 127.0.0.1
-- Generation Time: 2016-09-01 09:43:34
-- 服务器版本: 5.6.17
-- PHP Version: 5.5.12

SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;

--
-- Database: `shiyanshi`
--

-- --------------------------------------------------------

--
-- 表的结构 `ez_lab_type_region`
--

CREATE TABLE IF NOT EXISTS `lab_type_region` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  `title` varchar(20) NOT NULL COMMENT '实验室分类标题',
  `status` int(11) NOT NULL DEFAULT '1' COMMENT '状态',
  `sort` int(11) NOT NULL COMMENT '排序',
  `pid` int(11) NOT NULL COMMENT '父级id',
  `level` smallint(6) NOT NULL COMMENT '等级',
  `create_time` int(11) NOT NULL COMMENT '创建时间',
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 COMMENT='lab_type 实验室分类地域表' AUTO_INCREMENT=19;

--
-- 转存表中的数据 `ez_lab_type_region`
--

INSERT INTO `lab_type_region` (`id`, `title`, `status`, `sort`, `pid`, `level`, `create_time`) VALUES
(1, '实验室分类', 1, 1, 0, 0, 0),
(2, '北京', 1, 999, 1, 1, 0),
(3, '天津', 1, 999, 1, 1, 0),
(4, '上海', 1, 999, 1, 1, 0),
(5, '北京大学', 1, 999, 2, 2, 0),
(6, '清华大学', 1, 999, 2, 2, 0),
(7, '计算机学院', 1, 999, 5, 3, 0),
(8, '外语学院', 1, 999, 6, 3, 0),
(9, '天津大学', 1, 999, 3, 2, 0),
(10, '天津财经大学', 1, 999, 3, 2, 0),
(11, '计算机学院', 1, 999, 9, 3, 0),
(12, '艺术学院', 1, 999, 9, 3, 0),
(13, '土木学院', 1, 999, 10, 3, 0),
(14, '环境学院', 1, 999, 10, 3, 0),
(15, '南京', 1, 999, 1, 0, 0),
(16, '计算机实验室', 1, 999, 7, 4, 0),
(17, '外语实验室', 1, 999, 8, 4, 0),
(18, '软件实验室', 1, 999, 7, 4, 0);

/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;

//msg选中的项的子项的信息
//ajax return()调用ajax函数后给前端返回
AJAX对象:xmlhttpRequest
流程:
open()
//setrequestHeader()—post方法才需要
send()

document.getElementById(“”).οnclick=function{}

JSON的解析方法:
1var a = eval(“(“+json+”)”);//解析是如果数据里面包含方法的话还会执行方法 不会判断jsondata是否合法
2 JSON.parse(jsondata);
JSONLint工具可以用来判断JSON工具有没有问题
success :输入格式正确
msg:一般指的是请求的返回值
request.responseText//请求传来的对象

jquery库中有ajax的方法 不用原生JS写

跨域的处理方法:
法一:jsonp解决浏览器的跨域问题//不支持post请求
前端:
datatype:”jsonp”
jsonp:”callback”
后端:
function search(){
jsonp=GET[“callback”];
result=jsonp.”…..”;
}
法二:
XHR2(ie10以上才支持的新标准)
在服务器端改变:

header('Access-Control-Allow-Origin:*');
header('Access-Control-Allow-Methods:POST,GET');

问题:
1MySQL enter pwd和root pwd的关系
2JQXHR是什么对象


版权声明:本文为qq_32466635原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。