服务端
像一个网页,里面的数据来自哪里?如何去渲染?
其实都是通过服务器来获取数据。当用户点击地址栏,它向服务器发起一个HTTP请求,服务器收到后就会做出响应。
当用户在地址栏中输入域名按回车后,发生了什么事情?
a 浏览器先DNS上获取服务器的IP地址
b 浏览器向服务器发一个http请求(get/post)上行请求(request)
c 服务器会接受到http请求并做出响应(response)
d 浏览器解析数据,渲染代码呈现在我们眼前
Request
Client(浏览器) -------------->Server(服务器)
<--------------
Response
这里我们后台用到php,这里我们只对php进行简单的入门讲解。
php的入门
这里php+apache+mysql的安装这里就不做讲解。这里只讲解php最基本的相关知识。
切记含有php的代码,需要跑在服务器里
咱们先来看看第一个php程序
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<h1>今天 我非常高兴,买了一部iphone<?php echo 7 ?></h1>
</body>
</html>
echo 表示输出,所有的php代码 都必须在<?php ?>里面被包裹着。
- php书写的位置
<?php ?>可以出现在任何位置,甚至可以穿插在html代码里,php的输出还可以结合html,去实现想要的效果
<table>
<tr <?php if() echo "class='kk'" ?>></tr>
</table>
我们通过php输出class="kk"的内容,给tr设置类样式
- echo
echo语句要求结尾加分号 ;
- 变量及作用域
php的变量命名的规则和js差不多的,但是要以$开头。
php的作用域没有块级作用域的。
<?php
$num = 100;
function fn() {
// 在函数内部假如需要认识全局变量 需要在函数内部声明global
global $num;
echo $num;
}
fn();
?>
- 运算符
php的运算符同js一样,唯一的区别就是字符串拼接需要用 。而不是+
<?php
$a = 10;
$b = 20;
$c = $a + $b;
echo $c; //30
echo "<br/>";
echo 1 + 2 % 3 * 4;//9
echo "<br/>";
echo 10 . "2"*3;//106
echo "<br/>";
echo 6 !== "6";//1
?>
从上面就可以看出字符串拼接的方法,10 . 6 =106
- 数组
我们可以通过数组,去循环编写列表
<?php
$a = array("北京","上海","广州","深圳","合肥","杭州");
//echo $a[1];
// 输出数组详细信息
//print_r($a);
// 求数组元素个数
//echo count($a);
?>
<ul>
<?php
for($i=0; $i<count($a); $i++) {
?>
<li><?php echo $a[$i]; ?></li>
<?php
}
?>
</ul>
同样可以换一个方式去循环输出
<ul>
<?php
for($i = 0;$i<count($a);$i--){
echo "<li>".$a[$i]."</li>";
}
?>
</ul>
- 循环
php的循环方式同js一样
if if..if else...else do() while switch while
- 练习写一个table 要求隔行变色
<body>
<table>
<?php
for($i = 0;$i<10;$i++){
if($i%2==0){
echo "<tr class='bg_green'><td></td><td></td><td></td></tr>";
}else{
echo "<tr class='bg_red'><td></td><td></td><td></td></tr>";
}
}
?>
<?php
for($i = 0;$i<10;$i++){
?>
<tr <?php echo "class=" . ($i%2==0?"bg_green":"bg_red") ?> >
<td></td>
<td></td>
<td></td>
</tr>
<?php }?>
</table>
</body>
方法有很多 这里就介绍常规的两种方式。
讲完php的基本语法,加下来我们来讲解mysql的基本使用,在了解完这些内容,才便于我们更好的去模拟流程。
mysql
mysql是一款图形化管理数据库的工具,至于安装这里就不讲解。因为我们的重心不在这里,而是在AJAX。
我建立了一个数据库 名字叫first,创建了一个表叫student
以上就是student表的数据和参数。
接下来我们就要通过和数据库建立联系,去获取student表的数据,通过li来显示出来。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<?php
$connect = mysql_connect("localhost","root","123456");
mysql_selectdb("first",$connect);
mysql_query("SET NAMES UFT8");
$result = mysql_query("SELECT * FROM student WHERE AGE = 20");
while ($row = mysql_fetch_array($result)) {
?>
<li><?php echo $row["name"];?></li>
<li><?php echo $row["tel"];?></li>
<li><?php echo $row["age"];?></li>
<br/>
<?php }
mysql_close($connect);
?>
</body>
</html>
首先我们需要去连接本地的数据库。
mysql_connect("localhost","root","123456");//表示连接本地的数据库,输入mysql的用户名和密码
其次需要去访问到我们创建的first数据库里的student的表
mysql_selectdb("first",$connect);//找到first的数据库
mysql_query("SELECT * FROM student WHERE AGE = 20");//筛选student表中,年级是20的数据
最后输出数据,并关闭数据库
mysql_fetch_array($result)//会依次循环筛选的结果,返回的是数据的对象。
mysql_close($connect);//关闭数据库
mysql_query("SET NAMES UFT8");这句话是为了这事字节码,为了防止乱码。
前面的储备知识都讲解完了,后面开始我们会去讲解html如何和服务器进行交互,若表达有误请指出,望共同进步。