【问题标题】:How to update acf field value when button or link is clicked?单击按钮或链接时如何更新acf字段值?
【发布时间】:2014-07-24 08:28:37
【问题描述】:

当用户单击以下链接之一时,我正在尝试使用 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 实现这一目标?如果是这样,我真的不知道该怎么做。有什么建议么?想法?非常感谢任何和所有的帮助!

谢谢!

【问题讨论】:

  • 您是否可以不使用表单按钮,因为您已经在使用 POST。类似于&lt;input type="submit" name="accept" value="Accept"&gt; 然后if(isset($_POST['accept'])){ accept_event();} 类型的东西。
  • 如果您保存帖子/页面,字段值将自动保存到meta_value。

标签: javascript php html wordpress advanced-custom-fields


【解决方案1】:

你可以试试下面的代码

<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

【讨论】:

  • 非常感谢您,您是救生员。在将其实施到我的网站时,我遇到了一些麻烦(这是我没有立即回复的部分原因)。不得不做出一些改变,把东西放在这里和那里,学习一些新东西。不过,幸好我能弄明白。
猜你喜欢
  • 2021-07-03
  • 1970-01-01
  • 2019-09-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多