当用户点击下面的其中一个链接时,我正在尝试使用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实现这一目标?如果是这样,我真的不确定如何去做。有什么建议?思考?非常感谢任何和所有帮助!
谢谢!
答案 0 :(得分:-2)
您可以尝试以下代码
<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