我创建了这个PHP函数,用于删除通过AJAX调用传递id的产品:
function deleteSelectedProduct()
{
if ( isset($_POST[\'productToDelete\']) && ! empty($_POST[\'productToDelete\']) ) {
$postId=$_POST[\'productToDelete\'];
wp_delete_post($postId);
}
die();
}
我的AJAX调用如下所示:
$.ajax({
data: sampleData,
type: \'POST\',
url: AjaxObject.ss_ajax_url,
success: function(msg) {
window.location.reload(true);
}
});
如您所见,我使用
window.location.reload(true);
以刷新页面上的产品列表(因为产品刚刚被删除)。
有没有一种简单的方法可以在不重新加载页面的情况下更新页面内容?
我考虑的解决方案之一是修改PHP脚本,以便使用输出缓冲:
function deleteSelectedProduct()
{
if ( isset($_POST[\'productToDelete\']) && ! empty($_POST[\'productToDelete\']) ) {
$postId=$_POST[\'productToDelete\'];
wp_delete_post($postId);
}
ob_start();
include \'some_page.php\';
$response = ob_clean();
echo $response;
die();
}
我不确定这是不是一条路。我很感激你的建议。
最合适的回答,由SO网友:DiverseAndRemote.com 整理而成
您需要在html中使用产品id作为类名,然后可以执行以下操作:
$.ajax({
data: sampleData,
type: \'POST\',
url: AjaxObject.ss_ajax_url,
success: function(msg) {
$( \'.product-\' + sampleData.productToDelete ).remove();
}
});
如果你在页面上有任何计数,你也需要弄清楚。此外,如果您的分页不是通过某个javascript框架生成的,那么最好的办法就是继续根据需要重新加载页面。