使用按钮上的ID在POST中更新_POST_META

时间:2013-11-06 作者:Chris Mitchell

我希望有人能为我解答这个难题。。因为它在做我的头有点笑。

我有一个按钮,代码如下:

    <button class="contact-owner-send" id="rsvp_button">RSVP</button>
此按钮从系统内的表单向帖子所有者发送电子邮件。我有一个名为“number\\u Attenting”的自定义字段,它位于后端的帖子中。

当用户单击发送按钮时,我希望number\\u Attenting字段增加一个点。

我目前正在使用下面的代码,但它似乎没有达到我想要的效果。

    <script type="text/javascript">
    $(document).ready(function(){
    $(\'button#rsvp_button\').click(function qwe4_tracker(){
    global $post;
        // get each post by ID
        $postID = $post->ID;
        // get the post\'s custom fields
        $custom = get_post_custom($postID);
        // find the view count field
        $views = intval($custom[\'number_attending\'][0]);
        // increment the count
        if($views > 0) {
            update_post_meta($postID, \'number_attending\', ($views + 1));
        } else {
            add_post_meta($postID, \'number_attending\', 1, true);
        }
    });
    });
    </script>
我希望有人能帮我解决这个问题:)

1 个回复
最合适的回答,由SO网友:josh 整理而成

@s_ha_dum 如前所述,您的语法混合了JS和PHP;需要Ajax。我会尽力给你指出正确的方向。

这应该是您的javascript:

jQuery(document).ready(function($) {
    $(\'button#rsvp_button\').click(function qwe4_tracker(){

        var data = { action: \'my_action\' };

        $.post(ajaxurl, data, function(response) {
            //alert(\'Got this from the server: \' + response);  // Uncomment to use for testing
        });
    });
});
备注:

我们使用jQuery(document).ready(function($){ 开始我们的JS。这是为了防止使用全局$ jQuery变量。

风险值data 包含action; 必须在PHP中使用add_action 如下所述。

这应该是处理AJAX的PHP函数:

add_action(\'wp_ajax_my_action\', \'my_action_callback\');
function my_action_callback() {

    global $post;  // You still may need to pass the POST ID here from the JS ajax.
    // get each post by ID
    $postID = $post->ID;
    // get the post\'s custom fields
    $custom = get_post_custom($postID);
    // find the view count field
    $views = intval($custom[\'number_attending\'][0]);
    // increment the count
    if($views > 0) {
        update_post_meta($postID, \'number_attending\', ($views + 1));
    } else {
        add_post_meta($postID, \'number_attending\', 1, true);
    }
    die(); // this is required to return a proper result
}
PHP函数将处理post meta中数字的更新。。JS告诉PHP(通过ajax)在单击按钮时进行更新。

注:

获取正确的Post ID可能仍然存在问题。如果是这样,那么您需要通过PHP代码在全局JS变量中声明这一点。

祝你好运

结束

相关推荐

列出分类法:如果分类法没有POST,就不要列出分类法--取决于定制的POST-META?

这可能很难解释,我不知道是否有解决办法!?我有一个名为“wr\\u event”的自定义帖子类型和一个名为“event\\u type”的分层自定义分类法。自定义帖子类型有一个元框,用于event_date 并且与此帖子类型关联的所有帖子都按以下方式排序event_date. 我在循环中有一个特殊的条件来查询event_date 已经发生了-在这种情况下,它没有显示,但只列在我的档案中。就像你可以使用wp_list_categories() 我编写了一个自定义函数,它以完全相同的方式列出所有分类术语。现在