Javascript 加载新页面后如何加载AJAX数据
我正在用不同的产品制作一个网站。单击产品时,AJAX调用从数据库获取产品数据。之后,我想转到一个新页面,在那里将显示产品数据。但问题是,当加载新页面时,数据不会显示,因为数据是在上一页加载的 Javascript: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
$('#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);
}