当用户单击以下链接之一时,我正在尝试使用 update_field 更新现有的 ACF 字段。发生新事件时,该字段会自动设置为“待定”状态。当事件未决时,用户可以在前端选择是接受还是拒绝事件。例如,如果事件被接受,则当前字段中的“待定”将更新为“已接受”。与“拒绝”的情况相同。这是我的 HTML:
<a class="accept-button" onclick="">Accept</a>
<a class="reject-button" onclick="">Reject</a>
这是在我的主题的 function.php 中:
function accept_event() {
$value = $_POST['Accepted'];
update_field('field_53bc53fb91487', $value, $event_id);
}
function reject_event() {
$value = $_POST['Rejected'];
update_field('field_53bc53fb91487', $value, $event_id);
}
我知道有两种方法可以做到这一点。一个需要刷新页面,另一个使用 AJAX。我宁愿只刷新页面而不是使用 AJAX。我相信我可以使用 Javascript 实现这一点?如果是这样,我真的不确定该怎么做。有什么建议么?想法?非常感谢任何帮助!
谢谢!
最佳答案
你可以试试下面的代码
<a class="accept-button" onclick="updateStatus('Accept')">Accept</a>
<a class="reject-button" onclick="updateStatus('Reject')">Reject</a>
<form action="/updateStatus.php" method="post" name="post-status" id="post-status">
<input name="event_id" value="<?php echo $event_id;?>" type="hidden"/>
<input name="status" id="status" value="" type="hidden"/>
</form>
<script>
function updateStatus(status) {
$('#status').val(status);
$('#post-status').submit();
}
</script>
在 updateStatus.php 中
$value = $_POST['status'];
$event_id = $_POST['event_id'];
update_event_status($value, $event_id) {
update_field('field_53bc53fb91487', $value, $event_id);
}
// redirect back to your page
注意:代码未经测试,因此可能存在一些语法错误,您可能还需要根据需要更改一些内容,但我想您会明白它是如何工作的 此 javascript 代码还需要使用 jQuery
关于javascript - 单击按钮或链接时如何更新 acf 字段值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24922515/