Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/229.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 加载新页面后如何加载AJAX数据_Javascript_Php_Jquery_Ajax - Fatal编程技术网

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

Javascript 加载新页面后如何加载AJAX数据,javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,我正在用不同的产品制作一个网站。单击产品时,AJAX调用从数据库获取产品数据。之后,我想转到一个新页面,在那里将显示产品数据。但问题是,当加载新页面时,数据不会显示,因为数据是在上一页加载的 Javascript: $('#products').on('click', 'li', function(){ document.location.href = "product.html"; var datapk = $(this).attr('data-pk'); consol

我正在用不同的产品制作一个网站。单击产品时,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:

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

正如Rory所说

要么是document.location.href=product.html;或$.ajax{…}


但是,document.location.href=product.html与您可能会问自己的区别是什么。

如果您在第一页上通过AJAX获取产品信息,为什么还要麻烦重定向?如果您确实需要重定向,为什么还要使用AJAX呢?我想您还不清楚自己的需要。除此之外,对于您所描述的内容,使用AJAX毫无意义。在当今时代,mysql_*函数真的应该被msqli_*或PDO编写的语句所取代。
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);
}