Using AJAX in wordpress theme

时间:2012-03-06 作者:Ajay Patel

全部的

在我的主题中,顶部有一个通知。用户登录后,可以看到通知更新。单击通知时,我想将数据库警报字段值0更改为1。

我的ajax调用主题

 $("#notifications-button").click(function() {

        $.ajax({
        type : \'POST\',
        url: "http://localhost/rupp/wp-admin/admin-ajax.php",
        data:{action:\'MyAjaxFunction\'},
        success : function(data){
            $(\'.message-count\').hide();
        },

        });


});
和在功能上。php文件

add_action(\'wp_ajax_MyAjaxFunction\',\'MyAjaxFunction\');
function MyAjaxFunction()
{
    global $wpdb;
  echo (int)$user_ID;
  $wpdb->update( $wpdb->wp_frm_items, 
            array( \'alerts\' =>  1)
            );
}
但它不会对数据库中的警报字段进行任何更改。这是使用ajax调用主题函数的正确方法吗?

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

您需要添加$where update语句的参数,因为它不知道要更新哪一行。这个$wpdb->update() 方法没有$where 所以你必须提供一个。

http://codex.wordpress.org/Class_Reference/wpdb#UPDATE_rows

试试这个:

$wpdb->update( $wpdb->wp_frm_items, 
        array( \'alerts\' =>  1),
        array( \'user\' => get_current_user_id() )
        );

结束

相关推荐

JQuery AJAX调用引发HTTP302

我试图实现一个jQuery自动完成,其中自动完成从ajax源获取数据。然而,由于某种原因,当我打电话时,结果是302,而这反过来又会导致404。这就是我所拥有的:In functions.php:function my_ajax_foo() { die(\"OK\"); } add_action(\'wp_ajax_my_ajax_foo\', \'my_ajax_foo\' ); add_action(\'wp_ajax_nopriv_my_ajax_foo