PHP开发AJAX表单时无法实例化类 路径问题排查求助
修复步骤
1. 修正类文件引入路径
你当前使用的/class/xxx.php是系统根目录绝对路径,无法匹配项目内的class文件夹,所有文件引入都改为项目相对路径:
- form.php内引入代码修改为:
include_once('./class/Book.php'); include_once('./class/DVD.php'); include_once('./class/Forniture.php');
- Book.php内引入Product的代码修改为:
include_once('./class/Product.php');
2. 接收AJAX提交的表单参数
你在saveProduct方法中直接使用$size、$sku等变量,没有接收POST提交的参数,在方法开头添加参数提取逻辑:
function saveProduct(){ extract($_POST); // 将POST提交的键值对转换为对应变量 $ok = 0; // 原有逻辑保持不变 }
3. 修正Product类的笔误
insert方法中调用了不存在的getPname()方法,替换为已定义的getName():
":NAME"=> $this->getName(),
4. 开启错误输出方便排查
当前你关闭了异常输出和PHP错误提示,无法定位问题:
- 在form.php文件最顶部添加错误提示配置:
<?php error_reporting(E_ALL); ini_set('display_errors', 1); // 原有代码保持不变
- 打开catch块的异常输出:
catch (Exception $e) { echo $e->getMessage(); exit; }
5. 临时调整AJAX逻辑查看报错
当前AJAX请求成功后直接跳转,无法看到接口返回的报错信息,先注释跳转逻辑:
.done(function(msg){ console.log(msg); // 打印接口返回内容排查错误 // window.location.href = "index.php"; })
内容的提问来源于stack exchange,提问作者Bruno Scorzafave de Almeida
相关产品推荐
相关产品推荐

