php - AJAX 调用不向 PHP 脚本发送数据
问题描述
我试图在 PHP 文件中运行 AJAX 调用,当我按下提交按钮时,它将数据发送到服务器上的另一个 PHP 文件,该文件是从 html 输入中获取的。不幸的是,当我单击该按钮时,没有任何反应,即使在控制台中也没有。我试图通过window.alert()
在 AJAX 调用中创建输入来调试问题,但它以某种方式在警报框中显示了某个“对象对象”结果。我试图更改路径以查看是否检测到文件,但似乎正在检测到它,因为当我故意添加错误的路径时它会抛出 404,甚至尝试向 PHP 文件添加回显调用调用但没有出现。我现在真正能想到的唯一问题是我的实现有问题,但我不确定它是什么。
更新:我尝试查找某些问题,例如此处和此处,但它们对我不起作用
进行 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;
}
}
解决方案
根据 ajax 文档http://api.jquery.com/jquery.ajax/;
processData (default: true)类型:Boolean 默认情况下,作为对象(从技术上讲,不是字符串)传入数据选项的数据将被处理并转换为查询字符串,适合默认的内容类型“应用程序” /x-www-form-urlencoded”。
我认为您必须在您的 ajax 调用中将 processData 设置为 True,因为您使用的是 GET(获取需要查询字符串、url 数据),或者只是不设置它,所以它是默认值,这是真的。
推荐阅读
- command - 如何在 git 中提交特定的更改
- python - 解析格式为 20120101 1:00 的数据
- angular - 在主题订阅方法中调用时,Angular 5 ng-bootstrap 模态未正确显示
- matlab - 如何在 MATLAB 中合并两个函数?
- c++ - Qt5,在行中设置文字大小编辑
- docker - Docksal:如何启用 HTTPS / SSL?
- ruby-on-rails - 结合两个 each_with_object 迭代器
- sql-server - SQL Server:CASE 中的“=”语法错误
- java - Java Regex:如果缺少,请在字符串的开头和结尾添加引号
- r - 将文件导出到 R 中的相对路径