PHP / HTML, AJAX не вызывает / не выполняет PHP файл - PullRequest
0 голосов
/ 13 марта 2020

Прежде чем я открыл этот вопрос, я искал целое число rnet в решении. Может быть, это я или мое решение. Извините за это.

Ситуация такова, что у меня есть веб-приложение, созданное с PHP и взаимодействующее с базой данных через функции. Каждая страница представляет собой php, в котором выполняется код html.

Проблема в том, что когда я хочу реализовать Ajax для обновления данных без обновления страницы, файл PHP не выполняется при нажатии кнопки.

У javascript есть две функции:

  1. Оповещать сериализованные данные кнопки (работает)
  2. Запускать php скрипт с Ajax (не делает) t работа)

Html Заголовок

<!DOCTYPE html>
        <html>
            <head>
                <meta charset="utf-8" />
                <meta http-equiv="X-UA-Compatible" content="IE=edge">
                <meta name="viewport" content="width=device-width, initial-scale=1">

                <!-- JQuery -->
                    <script src="https://code.jquery.com/jquery-3.4.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
                    <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js" integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49" crossorigin="anonymous">

Я использую bootstrap -таблицу, один из столбцов - кнопка, которая имеет следующую content:

<form id="form" class="favourite-form" method="post"><input style="display:none" type="hidden" id=5 name="subject_id" value=5 ><input type="submit" name="submit" value="Button"></form><div id="response"></div>

При нажатии на кнопку появляется следующее предупреждение: enter image description here

Файл сценария включается в файл php:

include("favorite_ajax.html");

Файл сценария имеет следующее содержимое:

$(document).on('submit', '.favourite-form', function(e) { 
        e.preventDefault();             //prevent a normal postback and allow ajax to run instead
        var data = $(this).serialize(); //"this" represents the form element in this context
        alert(data);   // this alert works

    $.ajax({       
        method:   "POST", 
        url:      "process.php",  // calling this php file doens't work
        data:     data,
        success: function(data) { 
          alert("Data Save: " + data); 
        },
        error: function(jqXHR, textStatus, errorThrown) //gracefully handle any errors in the UI
        {
          alert("An ajax error occurred: " + textStatus + " : " + errorThrown);
        }
      }); 
}); 

Наконец, файл php имеет одну простую функцию, которая вставляет (фиктивные) данные. Файл php протестирован и не содержит ошибок.

<?php
        insertDummyData(1, 123); 
?>

В другом топи c Я также прочитал проверку журналов. Когда я нажимаю кнопку, в журналах также не добавляются записи.

Я бодрый, что я делаю не так? Потратьте несколько дней, чтобы исправить это, до сих пор нет результатов: (

1 Ответ

1 голос
/ 13 марта 2020
  1. поместите журнал ошибок в "process. php", чтобы убедиться, что он действительно вызывается, если он не вызывается, как предполагают другие, у вас могут быть ошибки пути, прав доступа или сценария.
  2. что на самом деле делает insertDummyData / process. php? Он должен что-то повторить, как если бы он писал на страницу для вызова AJAX, чтобы получить непустой результат. Например, в процессе. php

    <?php 
    $new_data = my_function_which_does_stuff_to_posted_data($_POST['data']);
    echo json_encode($new_data); 
    exit(); 
    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...