Ajax POST не установлен, но все еще активирует часть if-оператора php - PullRequest
0 голосов
/ 04 мая 2019

При попытке использовать Ajax для POST-данных со страницы 1 на страницу 2 оператор if на странице 2 дает мне понять, что $_POST не установлен, но, несмотря на то, что условие не выполняется, он все равно выполняет некоторые, , но невсе кода.Проблема сохраняется как на XAMPP, так и на моем веб-сервере.

Кнопка на странице 1 для данных POST:

<button type="button" class="btn postBtn" onclick="location.href='page2.php'" id="1337">Click me</button>

Отправка данных через ajax на странице 1:

$(document).ready(function(){
    $('.postBtn').click(function(){            
    var id = $(this).attr("id");  
    $.ajax({  
        url:"page2.php",  
        method:"post",  
        data:{
                id:id,
            },  
        });  
    });     
});

Оператор Php if на странице 2:

if (isset($_POST['id'])) {
    echo $_POST['id'];
    $_SESSION['id'] = $_POST['id'];
} else {
    echo "no id posted";
}

При нажатии кнопки я ожидаю, что оператор if отобразит 1337 и установит $_SESSION['id'] = 1337.Однако, когда я действительно нажимаю кнопку, эхо показывает no id posted, но неожиданно print_r($_SESSION) показывает [id] => 1337.

Есть идеи о том, чего мне не хватает?

1 Ответ

1 голос
/ 04 мая 2019

Если вы хотите использовать ajax для публикации значения, удалите щелчок по вашей кнопке. Если вы хотите увидеть результат, который вы выводите, добавьте поле успеха в ваш ajax и утешите результат там.

$('.postBtn').click(function(){        
    var id = $(this).attr("id");  
    $.ajax({  
        url:"page2.php",  
        method:"post",  
        data:{id:id,},
        success: function(res) { 
            console.log(res);
        } 
    });  
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...