@ftp14

Проблема PHP и AJAX. Как изменить значение в AJAX с помощью PHP?

Есть скрипт тестирования, созданный на AJAX и PHP, чтобы страница не перезагружалась. В AJAX имеем следующий код:
function send() {
    var text = $('...').val()
        $.ajax({
            type: "POST",
            url: "...",
            data: "...="+text,
            success: function(html) {
            $("...").empty();
            $("...").append(html);
        }
    });
}

Получается, вызываем функцию send, которая отправляет значение переменной и высылает ответ PHP на экран. Вопрос таков: как в строчке var text = $('...').val() вместо многоточия (в PHP заведена переменная, которая должна выводиться), изменять значение с помощью PHP?
Например, поначалу имеем:
function send() {
    var text = $('input_1').val()
        $.ajax({
            type: "POST",
            url: "test.php",
            data: "answer="+text,
            success: function(html) {
            $("text").empty();
            $("text").append(html);
        }
    });
}

После выполнения PHP:
function send() {
    var text = $('input_2').val()
        $.ajax({
            type: "POST",
            url: "test.php",
            data: "answer="+text,
            success: function(html) {
            $("text").empty();
            $("text").append(html);
        }
    });
}

Значение var text = $('...').val() сменилось, так как значение переменной в PHP тоже. Как это реализовать?
  • Вопрос задан
  • 83 просмотра
Решения вопроса 2
SilenceOfWinter
@SilenceOfWinter Куратор тега PHP
та еще зажигалка...
возвращать json c ответом и названием переменной
var inputName = '<?=$phpVar?>';
function send() {
        $.post(
            "test.php",
            {answer: $('input[name="'+inputName+'"]').val()},
           function (json) {
               $(".text").html(json.text);
               inputName = json.inputName;
           }
       );
}
Ответ написан
ThunderCat
@ThunderCat Куратор тега PHP
{PHP, MySql, HTML, JS, CSS} developer
Вариантов 2.
1) Подгрузить все вопросы в json и выбирать их по мере прохождения, подгружая в одну форму нужные поля. Подходит для "честных" пользователей, то есть тех, кто проходит тест для проверки собственных знаний, а не для "получить оценку по предмету".
2) Скрипт возвращает готовую хтмл разметку всего вопроса, которая затем либо вставляется в форму, либо уже с формой приходит и заменяет текущую.

В обоих случаях у вас не нужна никакая функция send(), достаточно повесить на документ слушатель субмита формы, и уже в нем отправлять аякс запрос со всеми данными текущей формы. И не надо никаких подстановок.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы