我尝试在PHP文件中运行AJAX调用,该调用会将数据发送到服务器上的另一个PHP文件,该文件是在我按下“提交”按钮时从html输入获取的。不幸的是,当我单击按钮时,什么都没有发生,即使在控制台中也没有。我试图通过在AJAX调用中创建输入的window.alert()
来调试问题,但是它以某种方式在警报框中显示了某个“ object Object ”结果。我试图更改路径以查看是否检测到该文件,但似乎被检测为当我故意添加错误的路径时会抛出404,甚至试图将echo调用添加到PHP文件中被叫,但是什么也没出现。我现在真正能想到的唯一问题是我的实现存在问题,但是我不确定这是什么。
更新:我尝试查找某些问题,例如here和here,但它们对我不起作用
进行AJAX调用的代码:
<?php
require "../../../AutoLoader.php";
use mvcApplication\core\controllers\ControllerFactory;
?>
<script>
$(document).ready(function () {
$('#submit').click(function () {
$.ajax({
url: '../app/views/generic/deletefunc.php',
type: 'GET',
data: {
Id: $('#Id'),
value: "0"
},
processData: false
});
});
});
</script>
<br>
<br>
<center>
<h3>Enter Teacher ID:</h3><input type="text" id="Id"
placeholder="Input ID here"/>
<br>
<button class="col-sm-4" id="submit">Submit</button>
</center>
<br>
deletefunc.php(应在其中接收数据的代码)
<?php
require_once '../../../AutoLoader.php';
use mvcApplication\core\controllers\ControllerFactory;
function deleteTeacher($a)
{
echo $a;
$entity = ControllerFactory::initTeacherC();
$entity->delete($a);
}
function deleteStudent($a)
{
echo $a;
/*$entity = ControllerFactory::initStudentC();
$entity->delete($data);*/
}
function deleteCourse($a)
{
echo $a;
/*$entity = ControllerFactory::initCourseC();
$entity->delete($data);*/
}
if (isset($_GET['Id']) && isset($_GET['value'])) {
switch ($_GET['value']) {
case "0":
deleteTeacher($_GET['Id']);
break;
case "1":
deleteStudent($_GET['Id']);
break;
case "3":
deleteCourse($_GET['Id']);
break;
}
}
答案 0 :(得分:0)
根据ajax文档http://api.jquery.com/jquery.ajax/;
processData(默认值:true)类型:布尔值默认情况下,数据传入 数据选项作为对象(从技术上讲,除 字符串)将被处理并转换为查询字符串 设置为默认的内容类型“ application / x-www-form-urlencoded”。
我认为您必须在ajax调用中将processData设置为True,因为您使用的是GET(获取需要的查询字符串,URL数据),或者只是不进行设置,因此这是默认设置。