在我的single-product.php页面上,我有一个下拉列表选择。页面上还有一个按钮,用于将帖子保存到收藏夹中。有没有一种方法可以使用下面的内容点击收藏夹按钮时从下拉列表中使用当前选定的值更新帖子的元信息?
update_post_meta( get_the_ID(), 'newcolor', $value );
答案 0 :(得分:0)
当然。您需要在此处使用AJAX,这将允许您在不刷新此页面的情况下运行PHP脚本。
首先,您需要创建一个名为 add_favorite.php 的新PHP脚本,其中包含:
$id = $_POST['id'];
update_post_meta($id, 'newcolor', $value);
然后,您可以使用jQuery中的$ .ajax()函数异步调用此脚本并更新数据库中的post meta。返回时,您将能够使用javascript更改HTML的特定元素以反映更改(添加到收藏夹)。
request = $.ajax({
url: "add_favorite.php",
type: "post",
data: // send the id here
});
// Callback handler that will be called on success
request.done(function (response, textStatus, jqXHR){
console.log("Hooray, added to favorites!");
});
请参阅此答案以了解如何发送AJAX数据: jQuery Ajax POST example with PHP
这是来自jQuery API文档。数据可以是字符串或数组类型。如果有多个值,则使用数组['id'=> $ id]:
data
Type: PlainObject or String or Array
Data to be sent to the server. It is converted to a query string, if not already a string. It's appended to the url for GET-requests. See processData option to prevent this automatic processing. Object must be Key/Value pairs. If value is an Array, jQuery serializes multiple values with same key based on the value of the traditional setting (described below).