2017-02-09 53 views
1

我正在尝试在我的Wordpress站点中集成QTip jQuery工具提示,使用Ajax触发工具提示,其中包含从自定义数据库表中抽取的一些信息。WordPress中的Qtip和ajax - 操作不起作用

我已经添加了enque和行动的东西我function.php:

function enqueue_scripts_styles_init() { 
    wp_enqueue_style('qtip', 'http://www.my-site.com/wp-content/themes/my-theme/qtip/jquery.qtip.min.css', null, false, false); 
    wp_enqueue_script('qtip', 'http://www.my-site.com/wp-content/themes/my-theme/qtip/jquery.qtip.min.js', array('jquery'), false, true); 
    wp_enqueue_script('qtipCall', 'http://www.my-site.com/wp-content/themes/my-theme/qtip/qtipcall.js', array('jquery', 'qtip'), false, true); 
    wp_localize_script('qtipCall', 'ajax_object', array('ajaxurl' => admin_url('admin-ajax.php'))); 
} 
add_action('init', 'enqueue_scripts_styles_init'); 

function ajax_action_stuff() { 
    global $wpdb; 
    $hero = $_POST['who']; 
    $results = $wpdb->get_row($wpdb->prepare ('SELECT * FROM wp_herotable WHERE Name = %s', $hero)); 
    $hero_bio = $results->Bio; 
    echo $hero_bio; 
    wp_die(); 
} 
add_action('wp_ajax_ajax_action', 'ajax_action_stuff'); 
add_action('wp_ajax_nopriv_ajax_action', 'ajax_action_stuff'); 

这是我qtipcall.js:

jQuery(document).ready(function($) { 
$('[tip-hero').each(function() { 
    $(this).qtip({ 
     content: { 
      text: function(event, api) { 
       $.ajax({ 
       url: ajax_object.ajaxurl, 
       type: 'POST', 
       action: 'ajax_action', 
       data: {who: $(this).attr("tip-hero")}, 
      }) 
       .then(function(content) { 
        // Set the tooltip content upon successful retrieval 
        api.set('content.text', content); 
       }, function(xhr, status, error) { 
        // Upon failure... set the tooltip content to error 
        api.set('content.text', status + ': ' + error); 
       }); 

       return 'Loading...'; // Set some initial text 
      } 

     }, 

     style: { 
     classes: 'qtip-dark qtip-rounded qtip-shadow' 
     } 
    }); 
}); 

});

最后,我的网页:

<a hfer="#" tip-hero="Joan of Arc">Joan of Arc</a> 

其结果是,在这一个0凉爽的提示!我检查管理员-ajax.php和零是来自:

// Require an action parameter 
if (empty($_REQUEST['action'])) 
die('0'); 

所以我觉得这是我的行动呼吁一个问题,但我实在不明白它是什么。

任何帮助将不胜感激。

谢谢。

回答

0

更改您的AJAX发送动作值:

data: {who: $(this).attr("tip-hero"),action: 'ajax_action'}, 
+0

谢谢!你是我的英雄! ;) – wtfatty