AJAX调用未将数据发送到PHP脚本

时间:2018-09-27 09:08:08

标签: php ajax

我尝试在PHP文件中运行AJAX调用,该调用会将数据发送到服务器上的另一个PHP文件,该文件是在我按下“提交”按钮时从html输入获取的。不幸的是,当我单击按钮时,什么都没有发生,即使在控制台中也没有。我试图通过在AJAX调用中创建输入的window.alert()来调试问题,但是它以某种方式在警报框中显示了某个“ object Object ”结果。我试图更改路径以查看是否检测到该文件,但似乎被检测为当我故意添加错误的路径时会抛出404,甚至试图将echo调用添加到PHP文件中被叫,但是什么也没出现。我现在真正能想到的唯一问题是我的实现存在问题,但是我不确定这是什么。

更新:我尝试查找某些问题,例如herehere,但它们对我不起作用

进行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;
    }
}

1 个答案:

答案 0 :(得分:0)

根据ajax文档http://api.jquery.com/jquery.ajax/;

  

processData(默认值:true)类型:布尔值默认情况下,数据传入   数据选项作为对象(从技术上讲,除   字符串)将被处理并转换为查询字符串   设置为默认的内容类型“ application / x-www-form-urlencoded”。

我认为您必须在ajax调用中将processData设置为True,因为您使用的是GET(获取需要的查询字符串,URL数据),或者只是不进行设置,因此这是默认设置。