Uncaught TypeError: Cannot read property

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>ajax</title>
</head>
<body>
<div id="continer"></div>
</body>
<script>
//1.创建xhr对象
var xhr = new XMLHttpRequest();
//2.绑定监听readyState的事件,并且将响应数据写入到div当中
xhr.onreadystatechange=function(){
if (xhr.readyState ==4&&xhr.status ==200){
var div = document.getElementById("continer");
var res =xhr.responseText;
res = JSON.parse(res);
if (res.code == 200){
//循环遍历输出res.data 到一个表格当中
var html='<table align=center>';
html +='<tr><th>ID</th><th>名称</th><th>金额</th><th>菜单</th></tr>'
for(var i=0; i<res.data.length;i++){
html +='<tr id="course_'+res.data[i].id+'">';
html +='<td>'+res.data[i].id+'</td>';
html +='<td>'+res.data[i].name+'</td>';
html +='<td>'+res.data[i].money+'</td>';
html +='<td><a href="javascript:del('+res.data[i].id+');">删除</a></td>';
html +='</tr>';
}
html +='</table>';
div.innerHTML=html;
}else{
div.innerText = res.msg;
}
}
}
//3.打开通道
xhr.open("get","cx.php",true);
//4.发送请求
xhr.send();
//定义删除函数
function del(id){
if(window.confirm("你确认要删除吗")){
//1.实例化对象
var xhr1 = new XMLHttpRequest();
//2.建立监听
xhr1.onreadystatechange=function(){
if (xhr1.readyState ==4&&xhr.status ==200)
var res1= JSON.parse(xhr1.responseText);
console.log(xhr1.responseText);
if (res1.code==200){
var tr = document.getElementById('course_'+id);
//以下是通过tr的父节点,删除当前tr
tr.parentNode.removeChild(tr);
}
}
//3.打开通道
xhr1.open("get","del.php?id="+id,true);
//4.发送请求
xhr1.send();
//1防止用户误点,确认按钮
//2如果确认删除,AJAX请求del.php,并且将id传递过去,
//3.在del.php中将相应数据进行删除;
//4.在del.php中生成JSON文本,响应成功或都失败数据;
//5.AJAX抓取JOSN文件并删除相应结点
}
}
</script>
</html>--------------------------------------------------------------------------------------------------------
del.php文件源码
<?php
$id =$_GET['id'];
try{
$pdo=new PDO(
'mysql:dbname=test;host=localhost;port=3306',
'root',
'root',
[PDO::ATTR_ERRMODE=>PDO::ERRMODE_EXCEPTION]
);
$sql='delete from users where id=:id ';
$stmt=$pdo->prepare($sql);
$stmt->execute(["id"=>$id]);
if($stmt->rowCount()){
$res=[
'code'=>200,
'msg'=>'ok',
];
}else{
$res=[
'code'=>201,
'msg'=>'删除失败',
];
}
}catch (PDOException $e){
$res=[
'code'=>500,
'msg'=>$e->getMessage(),
];
}
echo json_encode($res);
正在回答
同学你好,在if (xhr1.readyState ==4&&xhr.status ==200){}判断处缺少了一个花括号({})导致的,建议同学添加上。修改后代码如下所示:

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!
- 参与学习 人
- 提交作业 225 份
- 解答问题 3372 个
掌握用PHP开发互联网网站的必备功能,掌握当下主流的Linux系统开发,并熟练使用热门框架ThinkPhp开发电商团购项目,是通向PHP工程师必经之路。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星