如何在加载新页面后加载AJAX数据

How to load AJAX data after new page is loaded

本文关键字:加载 AJAX 数据 新页面      更新时间:2023-09-26

我正在制作一个不同产品的网站。当单击产品时,AJAX调用从数据库中获取产品数据。在此之后,我想转到一个新页面,其中将显示产品数据。但是有一个问题,当加载新页面时,数据不会显示,因为数据是在前一页加载的。

Javascript:

$('#products').on('click', 'li', function(){
    document.location.href = "product.html";
    var datapk = $(this).attr('data-pk');
    console.log(datapk);
    $.ajax({
        type: 'POST',
        url: 'connection.php',
        data: {
            'function': 'get_product_data',
            'datapk': datapk
        },
        success: function(data) {
            var productData = JSON.parse(data);
            displayProductData(productData);
        }
    });
});
PHP:

function get_product_data(){
    $datapk = mysql_real_escape_string($_POST['datapk']);
    $query = "SELECT * FROM Products WHERE prod_id = '$datapk'";  
    $result = mysqli_query($GLOBALS['dbc'], $query) or die('Error querying database.');
    $json = array();
    if (mysqli_num_rows($result)){
        while ($row = mysqli_fetch_row($result)){
            $json[] = $row;
        }
    }
    echo json_encode($json);
    mysqli_close($db_name);
}

Data-pk是数据库中唯一的ID。

正如Rory所说…

要么是document.location.href = "product.html";要么是$.ajax({ ... })

但是,document.location.href = "product.html<a href='product.html'>有什么区别呢?