javascript - 单击按钮或链接时如何更新 acf 字段值?

标签 javascript php html wordpress advanced-custom-fields

当用户单击以下链接之一时,我正在尝试使用 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/

相关文章:

javascript - 按模型 ID 列表获取 Backbone 集合

Javascript onclick 对象不是函数

php - 使用 MySQL 搜索字符串中的字符

php - 从 mysql 列表创建列

php - 无法将 phpmailer 脚本用于 gmail

javascript - D3.js 树布局 Canvas 调整大小

javascript - 更新 Meteor (mongoDB) 中对象数组中的字段

html - 隐藏滚动条,但仍然可以滚动

javascript - 使用 JQuery 按属性对 DIV 进行排序

javascript - 在 Angular Js 导航栏中将元素右对齐