php - 如何使用 AJAX 在循环中更新 ACF 字段
问题描述
我正在运行一个显示自定义类型帖子的循环。每个帖子都有一个<button class=favorite-toggle>add to favorites</button>
。当用户单击按钮时,我希望将该帖子对象添加到特定于该用户的转发器字段中。
如何使用 AJAX 完成此任务?我的基本理解是,我需要将 post_ID 和 user_ID 变量传递给 JS,然后通过 AJAX 函数,将变量传递给一个包含我的函数的新 PHP 文件,但我无法做到这一点。任何帮助将非常感激!
解决方案
我不确定您可以使用哪些 JS/PHP 框架,但 HTML + JS 的普通解决方案将是这样的:
var btnAddToFavorites = document.getElementById('js-add-to-favorites');
btnAddToFavorites.addEventListener('click', function(e) {
let _data = {
post_ID: "1234"
}
fetch("addToFavourite.php", {
method: "POST",
body: JSON.stringify(_data),
headers: {
"Content-Type": "application/json"
}
})
.then(response => response.json())
.then(json => {
console.log("success")
console.log(json)
})
.catch(err => console.log(err));
});
<button class="favorite-toggle" id="js-add-to-favorites">Add to Favorites</button>
和 PHPaddToFavourite.php
<?php
$body = file_get_contents("php://input");
$object = json_decode($body, true);
print_r($object);
?>
有几种方法可以将 Post ID 放入 JS 函数中。如果您的 JS 中还没有任何数据/视图模型,那么假设您有 PHP 生成页面,您可以将其添加到按钮
<button class="favorite-toggle" id="js-add-to-favorites" data-postid="1234">Add to Favorites</button>
并将其加载到 JS 中
e.getAttribute("data-postid")