Как извлечь значение PHP из БД и обновить на странице с помощью AJAX - PullRequest
0 голосов
/ 01 февраля 2020

У меня есть функция голосования, которая отправляет голос пользователя с помощью AJAX и обновляет БД без необходимости повторного обновления sh страницы. Пока все хорошо. Но я также хочу получить обновленные значения из БД и обновить это на странице.

Я вложил второй AJAX запрос в свой первый запрос. Этот второй запрос вызывает файл new_values. php, который получает последние значения и помещает их в массив и возвращает как JSON, как показано ниже

     $new_vals = array(
        'new_total' => $new_total,
        'poll_option_1_val' => $poll_option_1_val,
        'poll_option_2_val' => $poll_option_2_val,
     );

    echo json_encode($new_vals);

Ниже приведен запрос Ajax - первый Запрос отлично работает для обновления БД, но внутренний запрос AJAX не работает. В приведенном ниже примере я пытаюсь использовать alert, чтобы показать значение new_total, но ничего не происходит

$(function () { // SUBMIT FORM WITH AJAX

    $('#poll-form').on('submit', function (e) { //on form submit

        e.preventDefault(); // prevent default behaviour

        if($("form")[0].checkValidity()) { // check if the form has been validated

        $.ajax({ // submit process

            type: 'post',
            url: 'vote-process.php',
            data: $('form').serialize(),
            success: function () {

                $('#vote_submitted').modal('show');
                $("input").attr("disabled", "disabled");
                $("textarea").attr("disabled", "disabled");
                $("#vote_button").attr("disabled", "disabled");
                $("#vote_button").text("Vote submitted");

                $.ajax({
                    url : 'new_values.php',
                    type : 'POST',
                    data : data,
                    dataType : 'json',
                    success : function (result) {

                      alert(result['new_total']);

                    },
                    error : function () {
                       alert("error");
                    }
                });
            },

            error: function() { 

                $('#error').modal('show');
            }     
        });
        return false;

      } else { // if the form is not valid

        console.log("invalid form");
      }
    });

});

Это сводит меня с ума. Буду очень признателен за любую помощь!

Ответы [ 2 ]

2 голосов
/ 01 февраля 2020

Секунда Ajax данные: данные дадут вам эту проблему, необходимо передать правильный параметр

$.ajax({
         url : 'new_values.php',
         type : 'POST',
         data : {data_return:'yes'},
         dataType : 'json',
         success : function (result) {
            alert(result['new_total']);
         },
         error : function () {
            alert("error");
         }
    });
0 голосов
/ 01 февраля 2020

Что такое данные во втором ajax запросе? данные: данные? данные не определены, поэтому javascript может прекратить выполнение всего кода, особенно если использовать 'use strict'

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