php - 从 AJAX 请求调用 PHP 类方法
问题描述
我试图从 AJAX 实例化和执行自定义类方法,但返回 500 代码错误,这里是 ajax:
我希望 ajax 调用从给定的 xml 创建一个数组,这按预期工作,之后我需要从 SQL 查询创建一个数组并执行一个插入语句,并使用我必须调用的 SQL 数组中的数据一个类方法,我ḿ制作包含但不起作用
function BorraEmple(TipoDocu,NumePers)
{
if(confirm("Eliminar Empleado ("+TipoDocu+" "+NumePers+"), Desea Continuar?"))
{
var CodiDocu =$("#CmbCodiDocu").val();
var NumeDocu =$("#TxtNumeDocu").val();
$.ajax({
type: 'POST',
url: 'borraemple.php',
data: "Accion=BorraEmple"+"&TipoDocu="+TipoDocu+"&NumePers="+NumePers+"&CodiDocu="+CodiDocu+"&NumeDocu="+NumeDocu,
dataType: 'text',
async: false,
success: function(data)
{
setTimeout(function(){
location.reload();
}, 2000);
if(/ErrorSQL/.test(data))
alert("Error al consultar el registro, contacte a soporte tecnico");
else
{
if(data!='')
alert(data);
}
alert("El registro ha sido eliminado");
},
error: function(xhr, ajaxOptions, thrownError) {
alert(xhr.status);
alert(thrownError);
}
});
}
}
这是php:
<?php
include_once(SIH_PATH.'clases/FES/nominajuste.class.php');
if($_POST[Accion]=='BorraEmple'){
$TipoDocu=$_POST[TipoDocu];
$NumePers=$_POST[NumePers];
$CodiDocu=$_POST[CodiDocu];
$NumeDocu=$_POST[NumeDocu];
if(strlen($MesInve)==1)
$MesInve2='0'.$MesInve;
else
$MesInve2=$MesInve;
$DocuApli=docuapli($CodiDocu);
$Cond='';
if($DocuApli==124){
$EnviNomi = parametros('EnviNomi', 2);
if($EnviNomi==1){
function getArray(){
$doc = new DOMDocument();
$doc->preserveWhiteSpace = true;
$doc->load('NominaIndividualDeAjusteElectronicaXSDV1.0.xsd');
$doc->save('a.xml');
$xmlfile = file_get_contents('a.xml');
$parseObj = str_replace($doc->lastChild->prefix.':',"",$xmlfile);
$doc->doc->textContent;
$ob= simplexml_load_string($parseObj);
$json = json_encode($ob, JSON_PRETTY_PRINT);
$arrayNomiElect = json_decode($json, true);
return $arrayNomiElect;
}
$sqlNumePers = "SELECT CodiDocu, NumeDocu, CodiInst, CodiAno, CodiMes, TipoDocu, NumePers FROM DetaNomi WHERE CodiDocu='$CodiDocu' AND NumeDocu='$NumeDocu' AND NumePers=$NumePers GROUP BY TipoDocu,NumePers";
$resNumePers = query($sqlNumePers,2);
$ManeNoEl = parametros('ManeNoEl');
foreach($resNumePers as $key => $value) {
$datos = array(
'CodiDocu' => $value['CodiDocu'],
'NumeDocu' => $value['NumeDocu'],
'CodiInst' => $value['CodiInst'],
'CodiAno' => $value['CodiAno'],
'CodiMes' => $value['CodiMes'],
'TipoDocu' => $value['TipoDocu'],
'NumePers' => $value['NumePers'],
'arraybase' => getArray()
);
$sqlIns="INSERT INTO NomiElec (CodiDocu, NumeDocu, CodiInst, CodiAno, CodiMes, TipoDocu, NumePers) VALUES ('$datos[CodiDocu]','$datos[NumeDocu]','$datos[CodiInst]','$datos[CodiAno]','$datos[CodiMes]','$datos[TipoDocu]','$datos[NumePers]')";
//echo $sqlIns; exit();
query($sqlIns);
if($ManeNoEl == 1){
$nominaElect = new NominaAjuste($datos);
$nominaElect->getEstructura('E');
}
}
}
else
$retorno='';
echo $retorno;
}
我已经在没有 ajax 的情况下测试了功能,一切正常,我对 ajax 不是很熟悉,不知道我是否做得很好..
谢谢。
解决方案
推荐阅读
- generics - 如何定义一个使用 Mutex 的泛型函数
? - r - 根据 ID 组之间的小时差异
- python - 如何在 flask-restplus 中实现同时具有上传和有效负载的休息
- php - 设置文件大小时php下载限制zip损坏
- javascript - 为什么返回整个文档时出错
- json - 解决错误'Unexpected token < in JSON at position 0 at JSON.parse'
- dart - 双击按钮时如何在颤动中修复多个导航
- javascript - 为什么 NodeJS/Socket 调用这么多次
- visual-studio - 如何修复 Visual Studio 错误“无法加载项目文件。根级别的数据无效。”
- python - threading.Lock() 是否与 QThread() 兼容,QMutex() 是否与 python 线程兼容?