Передача значения с помощью ajax с одной страницы php на другую - PullRequest
0 голосов
/ 03 февраля 2020

Я пытаюсь передать некоторые значения с помощью AJAX с одной страницы php на другую, но я не могу правильно передать ее. Цель также состоит в том, чтобы загрузить следующую страницу после передачи ей значения. Но я не могу этого сделать, и значение не передается на следующую страницу php. Я получаю сообщение об ошибке

Примечание: неопределенный индекс: var1

Вот мой java код первой страницы

function next(){
    $.ajax({
         url: "next.php",
        data: { var1 : 123 },
        success: function( data ) {
            console.log( data );
        }
    }).done(function(data) { 
        $("#content").load("next.php");
    });
}

Здесь html код первой страницы

<button onclick="next()">Click me</button>
<div id="content">

Теперь на своей второй странице я использую это для получения переменной

<?php echo $_GET['var1'];?>

Я пробовал решения из другого поста в Inte rnet но до сих пор не нашел решения. Надеюсь, кто-то даст ответ. Большое спасибо

Ответы [ 2 ]

3 голосов
/ 03 февраля 2020

Запустив $('#content').load("next.php"), вы по сути снова загружаете страницу без параметров запроса. Вы уже получаете ответ на запрос next. php в вашей функции успеха - он сохраняется в переменной data. Таким образом, вы можете просто выполнить $('#content').html(data); в своей функции успеха.

function next(){
    $.ajax({
        url: "next.php",
        data: {var1 : 123},
        success: function( data ) {
            $('#content').html(data);
        }
    });
}

Обратите внимание, что функция успеха выполняется только по HTTP 200, поэтому, если вы хотите быть действительно интересным, вы можете сделать это:

function next(){
    $.ajax({
        url: "next.php",
        data: {var1 : 123},
        success: function( data ) {
            $('#content').html(data);
        },
        error: function() {
            console.log("an error occurred");
        }
    });
}
2 голосов
/ 03 февраля 2020

Измените следующий код функции следующим образом:

function next(){
  $.ajax({
    url: "next.php",
    data: {var1 : 123},
  }).done(function(data) { 
      $("#content").html(data);
  });
}

.load() в jQuery выполнит еще один запрос Ajax без аргумента данных, поэтому вы получаете Notice. Кроме того, вы не вставляете данные, возвращенные из вызова Ajax в ваш контент div.

...