get方式
document.getelementbyid(save).onclick=function(){ var request=new xmlhttprequest(); request.open(get,http://localhost/service.php?username=+document.getelementbyid(stuname).value+&number=+document.getelementbyid(stunumber).value+&sex=+document.getelementbyid(stusex).value+&job=+document.getelementbyid(stujob).value); request.send(null); request.onreadystatechange=function(){ if(request.readystate===4){ if(request.status===200){ document.getelementbyid(saveresult).innerhtml=request.responsetext; }else{ alert(发生错误la :+request.status); } } } }service.php $username=$_get['username']; $password=$_get[number]; $sex=$_get[sex]; $job=$_get[job]; if(($username==11)&&($password)&&($sex)&&($job)){ echo '{success:true,msg:学生添加成功}'; }else{ echo '{success:false,msg:参数错误,填写信息不全}'; } 结果:是正确的。但是,换为post传递,就有问题,代码如下: document.getelementbyid(save).onclick=function(){ var request=new xmlhttprequest(); var data=name1=+document.getelementbyid(stuname).value+&number=+document.getelementbyid(stunumber).value+&sex=+document.getelementbyid(stusex).value+&job=+document.getelementbyid(stujob).value; request.open(post,http://localhost/service.php); request.setrequestheader(content-type,appliaction/x-www-form-urlencoded); request.send(data); request.onreadystatechange=function(){ if(request.readystate===4){ if(request.status===200){ document.getelementbyid(saveresult).innerhtml=request.responsetext; } else{ alert(发生错误la :+request.status); } } } } service.php代码: var_dump($_server['request_method']);//为了测试用 $username=$_post['name1']; $password=$_post[number]; $sex=$_post[sex]; $job=$_post[job]; if(($username==11)&&($password)&&($sex)&&($job)){ echo '{success:true,msg:学生添加成功}'; } else{ echo '{success:false,msg:参数错误,填写信息不全}'; }
结果为:
string(4) post
notice: undefined index: name1 in d:phpstudywwwservice.php on line 23
notice: undefined index: number in d:phpstudywwwservice.php on line 24
notice: undefined index: sex in d:phpstudywwwservice.php on line 25
notice: undefined index: job in d:phpstudywwwservice.php on line 26
{success:false,msg:参数错误,填写信息不全}
,这个是为什么呢?我哪里写的有问题?请高人指点,谢谢!
回复内容: get方式
document.getelementbyid(save).onclick=function(){ var request=new xmlhttprequest(); request.open(get,http://localhost/service.php?username=+document.getelementbyid(stuname).value+&number=+document.getelementbyid(stunumber).value+&sex=+document.getelementbyid(stusex).value+&job=+document.getelementbyid(stujob).value); request.send(null); request.onreadystatechange=function(){ if(request.readystate===4){ if(request.status===200){ document.getelementbyid(saveresult).innerhtml=request.responsetext; }else{ alert(发生错误la :+request.status); } } } }service.php $username=$_get['username']; $password=$_get[number]; $sex=$_get[sex]; $job=$_get[job]; if(($username==11)&&($password)&&($sex)&&($job)){ echo '{success:true,msg:学生添加成功}'; }else{ echo '{success:false,msg:参数错误,填写信息不全}'; } 结果:是正确的。但是,换为post传递,就有问题,代码如下: document.getelementbyid(save).onclick=function(){ var request=new xmlhttprequest(); var data=name1=+document.getelementbyid(stuname).value+&number=+document.getelementbyid(stunumber).value+&sex=+document.getelementbyid(stusex).value+&job=+document.getelementbyid(stujob).value; request.open(post,http://localhost/service.php); request.setrequestheader(content-type,appliaction/x-www-form-urlencoded); request.send(data); request.onreadystatechange=function(){ if(request.readystate===4){ if(request.status===200){ document.getelementbyid(saveresult).innerhtml=request.responsetext; } else{ alert(发生错误la :+request.status); } } } } service.php代码: var_dump($_server['request_method']);//为了测试用 $username=$_post['name1']; $password=$_post[number]; $sex=$_post[sex]; $job=$_post[job]; if(($username==11)&&($password)&&($sex)&&($job)){ echo '{success:true,msg:学生添加成功}'; } else{ echo '{success:false,msg:参数错误,填写信息不全}'; }
结果为:
string(4) post
notice: undefined index: name1 in d:phpstudywwwservice.php on line 23
notice: undefined index: number in d:phpstudywwwservice.php on line 24
notice: undefined index: sex in d:phpstudywwwservice.php on line 25
notice: undefined index: job in d:phpstudywwwservice.php on line 26
{success:false,msg:参数错误,填写信息不全}
,这个是为什么呢?我哪里写的有问题?请高人指点,谢谢!
post 用$_post取
如果你又想取get 还想取post 可以用 $_request
因为你 php 中是用$_get 所以当然只能获取get传递过来的值
$_get 获取 url连接中的参数
$_post 获取 post提交的参数
$_request 可以获取到get和post的参数
你的案例里,用$_get是获取不到post参数的。
post请求时参数格式不正确,换成var postdata = { name1: value1, name2: value2} 这样试一试。可以f12调试一下。
