AJAX-вызов не отправляет данные в PHP-скрипт - PullRequest
0 голосов
/ 27 сентября 2018

Я попытался запустить вызов AJAX в файле PHP, который отправляет данные в другой файл PHP на сервере, который берется из ввода HTML, когда я нажимаю кнопку отправки.К сожалению, когда я нажимаю на кнопку, ничего не происходит, даже в консоли.Я попытался отладить проблему, создав window.alert() входных данных в вызове AJAX, но он каким-то образом показывает определенный результат " object Object " в окне предупреждения.Я попытался изменить путь, чтобы увидеть, обнаруживается ли файл или нет, но кажется, что он обнаруживается, потому что когда я намеренно добавляю неправильный путь, он выдает 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;
    }
}

1 Ответ

0 голосов
/ 27 сентября 2018

Согласно документам ajax http://api.jquery.com/jquery.ajax/;

processData (по умолчанию: true) Тип: Boolean По умолчанию данные передаются в параметр данных как объект (технически,все, кроме строки), будет обработано и преобразовано в строку запроса , соответствующую типу содержимого по умолчанию "application / x-www-form-urlencoded".

Я думаю, что вы должны установить для processData значение True при вызове ajax, потому что вы используете GET (получить строку запроса, URL-данные) или просто не устанавливаете его, так что это будет значение по умолчанию, равное true.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...