为了账号安全,请及时绑定邮箱和手机立即绑定

Ajax问题?

Ajax问题?

为什么点击查询时会这样控制台:XML 解析错误:找不到根元素位置:file:///D:/ss/test.php?number=0行 71,列 3:php代码如下<?php   //设置页面内容是html编码格式是utf-8 header("Content-Type:text/plain;charset=utf-8"); //header("Content-Type:application/json;charset=utf-8"); //header("Content-Type:text/xml;charset=utf-8"); //header("Content-Type:text/html;charset=utf-8"); //header("Content-Type:application/javacript;charset=utf-8"); //定义一个多维数组,包含员工的信息,每条员工信息为一个数组 $staff = array  ( array("name" => "洪七","number" => "101","sex" => "男","job" => "总经理" ), array("name" => "郭晶","number" => "102","sex" => "男","job" => "开发工程师" ), array("name" => "黄蓉","number" => "103","sex" => "女","job" => "神经病" ) ); //判断如果是GET请求,则进行搜索;如果是POST请求,则进行新建 //$_SERVER是一个超全局变量,在一个脚本的全部作用域中都可用,不用使用global关键字 //$_SERVER["REQUEST_METHOD"]返回访问页面使用的请求 if ($_SERVER["REQUEST_METHOD"] == "GET") { search(); }elseif ($_SERVER["REQUEST_METHOD"] == "POST") { create(); } //通过员工编号搜索员工 function search(){ //检查是否有员工编号的参数 //isset检测变量是否设置;empty判断值是否为空 //超全局变量$_GRT和$_POST用于收集表单数据 if (!isset($_GET['number']) || empty($_GET["number"])) { echo "参数错误"; return; } //函数值外声明的变量拥有Global作用域,只能在函数之外进行访问。 //global关键词用于访问函数内的全局变量 global $staff; //获取number参数 $number = $_GET["number"]; $result = "没有找到员工。"; //遍历$staff多维数组,查找key值为number的员工是否存在,如果存在,则修改返回值 foreach ($staff as $value) { if ($value["number"] == $number) { $result = "找到员工:员工编号:".$value["number"].",员工姓名:".$value["name"]. ",员工性别:".$value["sex"].",员工职位:".$value["job"]; break; } } echo $result; } //创建员工 function create(){ //判断信息是否填写完全 if (!isset($_POST["name"]||empty($_POST["name"] ||!isset($_POST["number"]||empty($_POST["number"] ||!isset($_POST["sex"]||empty($_POST["sex"] ||!isset($_POST["job"]||empty($_POST["job"])) { echo "参数错误,能不能写完整?"; return; } //TODO:获取POST表单数据并保存到数据库 //提示保存成功 echo "员工:".$_POST["name"]."信息保存成功!"; } ?>html代码如下<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <script src="js/jquery-3.2.0.js"></script> <title>Demo</title> <style> body,input,button,select,h1{ font-size: 30px; line-height: 1.8; } </style> </head> <body> <h1>员工查询</h1> <label>请输入员工编号:</label> <input type="text" id="keyword"/> <button id="search">查询</button><br> <p id="searchResult"></p> <h1>员工新建</h1> <label>请输入员工姓名:</label> <input type="text" id="staffName"/><br> <label>请输入员工编号:</label> <input type="text" id="staffNumber"/><br> <label>请输入员工性别:</label> <select id="staffSex"> <option>男</option> <option>女</option> </select><br> <label>请输入员工职位:</label> <input type="text" id="staffJob"/><br> <button id="save">保存</button> <p id="createResult"></p> <script> document.getElementById('search').onclick = function(){ //发送Ajax查询请求并处理 var request = new XMLHttpRequest(); request.open("GET","file:///D:/ss/test.php?number="+ document.getElementById('keyword').value); request.send(); request.onreadystatechange = function(){ if (request.readyState === 4) { if (request.status === 200) { document.getElementById('searchResult').innerHTML = request.responseText; } else { alert("发生错误:"+ request.status); } } } } </script> </body> </html>
查看完整描述

4 回答

?
西兰花伟大炮

TA贡献376条经验 获得超318个赞


request,open()里面的文件路径有不有问题?感觉是这个问题

查看完整回答
2 反对 回复 2017-04-23
  • 白天给你吃黑片
    白天给你吃黑片
    demo.html跟test.php在ss文件夹同级目录,绝对位置相对位置都不对。。。
  • 西兰花伟大炮
    西兰花伟大炮
    request.opne()就不要加路径了,我测试没问题的,都是下的源码
  • 白天给你吃黑片
    白天给你吃黑片
    request.open("GET","test.php?number="+ document.getElementById('keyword').value); 是这样吗,= =我在火狐浏览器上测就是这个样子。。。我没有加站点,是不是因为这个?
点击展开后面1
?
qq___714

TA贡献2条经验 获得超0个赞

这个问题是因为,打开php文件是localhost/下打开,但你打开这个网页不是通过localhost打开,在使用ajax找到php文件时是按你打开html的目录下找到php文件,此时打开php文件不是在localhost下的,应该在localhost下打开html文件

查看完整回答
反对 回复 2018-03-12
?
weibo_杰克逊之死_0

TA贡献2条经验 获得超0个赞


或者,如果你用的是Dreamweaver的话,配置下服务器也可以。就可以不用下载xampp

查看完整回答
反对 回复 2017-06-05
?
weibo_杰克逊之死_0

TA贡献2条经验 获得超0个赞


请问这个问题解决了吗?我也碰到这个问题,说下我的解决方法。下载xampp,运行之后把你的html和php放在xampp安装文件夹下的htdocs文件夹下面,然后再浏览器输入localhost/xxx.html就可以了。xxx表示你的html文件名。

查看完整回答
反对 回复 2017-06-05
  • 4 回答
  • 0 关注
  • 3038 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信