php服务器交互,AJAX如何实现和后端php的交互(网页如何与 web 服务器进行通信)...

在这里我们将会用一个姓名提示框案例来简单说明;

当用户在输入框中键入字符时,网页与 web 服务器进行通信,服务器返回提示信息,传给网页;

先看一下界面:

197d1708d61cb52a95a9f9b5e98d7b79.png

在html页面中:

思路:就是当用户在上面的输入框中键入a-z字符时,就会执行匹配姓名函数 "showHint()" 此时姓名匹配函数被"onkeyup" 事件触发调用AJAX,向服务器发送请求和接收数据。

具体的代码:

Title

在输入框中尝试输入字母 a-z的任意字符:

输入姓名:

提示信息:

function showHint(str)

// 姓名匹配函数

{

var xmlhttp;

// 创建客户端请求对象的变量

if (str.length==0)

// 如果此时没有输入字符

{

document.getElementById("tip").innerHTML="";

// 如果输入框为空 (str.length==0),则该函数清空 tip 占位符的内容,并退出函数

return;

// 结束函数操作

}

// 如果输入框不为空,showHint() 函数执行以下任务:

/*创建 XMLHttpRequest 对象

当服务器响应就绪时执行函数

把请求发送到服务器上的文件

请注意我们向 URL 添加了一个参数 q (带有输入框的内容)

*/

if (window.XMLHttpRequest)

// 兼容浏览器,分情况创建客户端请求对象

{

// IE7+, Firefox, Chrome, Opera, Safari 浏览器执行代码

xmlhttp=new XMLHttpRequest();

}

else

{

// IE6, IE5 浏览器执行代码

xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");

}

// ajax的执行状态函数

xmlhttp.onreadystatechange=function()

{

if (xmlhttp.readyState==4 && xmlhttp.status==200)

// 如果服务器响应完成时

{

document.getElementById("tip").innerHTML=xmlhttp.responseText;

// 将服务器响应发送到前端的数据填入到提示信息下;

}

}

xmlhttp.open("GET","运行php文件后赋值地址栏?号前的地址?q="+str,true);

// 客户端打开服务器的方式是get 路径 路径上所携带输入框中输入的信息 运行模式是异步的方式;

xmlhttp.send();

// 客户端向服务器发送信息

}

在php也就是服务器上,执行的操作

/**

* Created by PhpStorm.

* User: Administrator

* Date: 2018/10/26 0026

* Time: 下午 20:18

*/

// 书写提示姓名数组

$a=array("Anna","Brittany","Cinderella","Diana","Eva",

"Fiona","Gunda","Hege","Inga","Johanna","Kitty",

"Linda","Nina","Ophelia","Petunia","Amanda","Raquel","Cindy",

"Doris","Eve","Evita","Sunniva","Tove","Unni","Violet","Liza",

"Elizabeth","Ellen","Wenche","Vicky");

//从URL里面获取q参数,也就是用户输入提示框的信息;

$q=$_GET["q"];

$hint="";// hint是返回给前端/页面的数据

//如果输入框中有信息输入,那么就从姓名数组中查找是否有匹配项

if (strlen($q) > 0)

{

for($i=0; $i

{

if (strtolower($q)==strtolower(substr($a[$i],0,strlen($q))))

//将输入进来的字符从头到结束都转换成小写字母,

//如果此时从头到尾姓名数组里面有和他相同的匀速匹配,

{

if ($hint=="")

{//如果此时提示信息为空

$hint=$a[$i];

// 将找的对应元素放入到提示数组中区

}

else

{ //否则就在提示数组的后面加“,”拼接找到的对应姓名里的元素的值;

$hint=$hint." , ".$a[$i];

}

}

}

}

// Set output to "no suggestion" if no hint were found

//如果在姓名数组中没找到对应项,将提示输出设置为“没有建议”

if ($hint == "")

{

// 如果提示信息为空

$response="no reguest";

// 响应前端 发送给前端没有建议

}

else

{

$response=$hint;

// 否则 响应前端 将当前的提示数组赋值给前端,

}

//输出响应

echo $response;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值