在管理员菜单区域中使用带有Wordpress插件的jQuery jTable

时间:2013-03-28 16:22:00

标签: jquery-ui jquery-plugins wordpress jquery-jtable

希望使用jQuery-jTable插件(jtable.org)从数据库中获取(并添加/编辑)记录。我已经将所需的脚本排队并验证它们是通过页面源加载的,但我没有得到任何东西。根据入门指南,我至少应该得到一张空白表,但我得到一个空白页。我的代码如下 - 任何想法?

将脚本排入队列的代码:

function lfc_load_scripts() {
//set global variables
global $plugin_url;

//set variable to use to point to process.php path
$js_vars = array('plugin_url'=>$plugin_url,);

//Load scripts and css for Tabs UI
wp_enqueue_script('jquery-ui-tabs');
wp_enqueue_script('lfc-ui-js', $plugin_url . 'includes/js/tabs-ui.js', array('jquery'));
wp_localize_script( 'lfc-ui-js', 'js_vars', $js_vars) ;
wp_register_style( 'lfc_jquery_admin_css', $plugin_url . 'includes/css/ui.css', false, '1.0.0' );
    wp_enqueue_style( 'lfc_jquery_admin_css' );

//Load scripts and css for jTable
    wp_enqueue_script('jquery-ui-core');
    wp_enqueue_script('lfc-jtable-js', $plugin_url . 'includes/js/jtable/jquery.jtable.js', array('jquery'));
wp_register_style( 'lfc_jtable_css', $plugin_url . 'includes/js/jtable/themes/metro/blue/jtable.css', false, '1.0.0' );
    wp_enqueue_style( 'lfc_jtable_css' );

    //Load main jQuery file
wp_enqueue_script('lfc-process-js', $plugin_url . 'includes/js/process.js', array('jquery'));

}
add_action('admin_enqueue_scripts', 'lfc_load_scripts');

这是jQuery(根据jTable.org页面上的说明)

$('#FighterTableContainer').jtable({
        title: 'Table of people',
        actions: {
            listAction: '/GettingStarted/PersonList',
            createAction: '/GettingStarted/CreatePerson',
            updateAction: '/GettingStarted/UpdatePerson',
            deleteAction: '/GettingStarted/DeletePerson'
        },            
        fields: {
            PersonId: {
                key: true,
                list: false
            },
            Name: {
                title: 'Author Name',
                width: '40%'
            },
            Age: {
                title: 'Age',
                width: '20%'
            },
            RecordDate: {
                title: 'Record date',
                width: '30%',
                type: 'date',
                create: false,
                edit: false
            }
        }
});

1 个答案:

答案 0 :(得分:0)

我在虚拟插件中测试了jTable,它显示了一个包含声明字段的空白表(NameAgeRecordDate)。

您的代码问题:

1)以下内容:

wp_enqueue_script( 'jquery-ui-tabs' );
wp_enqueue_script( 'lfc-ui-js', $plugin_url . 'includes/js/tabs-ui.js', array('jquery'));

可以声明为:

wp_enqueue_script(
    'lfc-ui-js', 
    $plugin_url . 'includes/js/tabs-ui.js', 
    array( 'jquery', 'jquery-ui-tabs' ) 
);

脚本'lfc-jtable-js'也一样。也许,您的代码需要在footer上加入。

2)使用(document).ready包裹您的代码,如下所示:

jQuery(document).ready(function($) {   
    $('#FighterTableContainer').jtable({
        // rest of the code
    });
});