

Get in touch

Download Plugin Now
  • Follow
  • Follow
WP Data Access
  • Download
  • Support
  • Features
  • Pricing
  • Documentation
    • Tool Guide
    • App Builder
    • Data Explorer
    • SQL Query Builder
    • Plugin Settings
    • Legacy Tools
    • Remote Connections
a
M
  • Download
  • Support
  • Features
  • Pricing
  • Documentation
    • Tool Guide
    • App Builder
    • Data Explorer
    • SQL Query Builder
    • Plugin Settings
    • Legacy Tools
    • Remote Connections
Download Plugin Now

Legacy Tools

  • Deprecating in the near future

Tables

  • Getting Started
  • Creating and publishing
  • Responsive data tables
  • SEO friendly data tables
  • Adding hyperlinks
  • Extension Manager
  • Style Manager
  • Language settings
  • Styling
    • Style Manager
    • Premium styling
    • Global styling
    • Code Manager Styling
    • Manual styling
    • Styling issues
  • Filters
    • Static filters
    • Interactive filters
      • URL parameters
      • Search Panes
      • Search Builder
      • Search form
      • Advanced search
      • Geolocation search
  • Export & other buttons
    • Export to PDF, CSV, Excel, SQL
    • Print & copy buttons
    • Column selection buttons
    • Custom buttons
  • Advanced features
    • Advanced settings
    • Large tables & performance
    • Progressively SHOW MORE
    • Custom queries
    • Custom Post Types
    • Row grouping
    • Responsive master-detail
    • Master-detail tables
    • Non admin user access
  • Demos & tutorials
    • Demos
    • Tutorials

Forms

  • Data Projects
  • Projects and templates
  • Supported Data Types
  • One-To-Many relationships
  • Many-To-Many relationships
  • Registration page
  • Manage table options
  • Shortcode usage
  • Data Forms
    • Data Forms
    • Overview
    • Project Demo
    • Page Demo
  • Advanced features
    • Adding filters
    • Custom validation
    • Add less/more button
    • User roles
    • Managing roles and users
    • Advanced table options
    • Advanced lookups
    • Front-end toolbar
    • Transfer to other WP site
  • Demos & tutorials
    • Demos
    • Tutorials

Templates

  • Project Templates
  • Creating templates
  • Table Settings
  • Relationships
  • List Table
  • Data Entry
  • Reconcile

Designer

  • Getting started
  • Introduction
  • Basic mode

Dashboards

  • Getting started
  • Dashboards
  • Sharing dashboards
  • Dashboards Widgets
    • Dashboard Widgets
    • Publication Widget
    • Project Widget
    • Chart Widget
    • Custom Code Widget
    • Database Widget
    • Sharing Widgets

Charts

  • Chart Widget

Code

  • Shortcodes
    • Overview
    • wpdataaccess
    • wpdadataproject
    • wpdadataforms
    • wpdadiehard
    • wpdageomap
    • wpdawidget
  • Plugin Variables
    • Environment variables
  • Hooks & filters
    • Overview
    • Hooks
      • Overview
      • wpda_add_search_actions
      • wpda_add_search_filter
      • wpda_before_list_table
      • wpda_after_list_table
      • wpda_wpdataaccess_prepare
    • Filters
      • Overview
      • wpda_column_default
      • wpda_before_simple_form
      • wpda_after_simple_form
      • wpda_construct_where_clause
  • API
    • WP Data Access API
    • Remote database access
    • CRUD Example
    • Extensions
      • Alternative search algorithm
      • Alternative buttons extension
  • Code Manager
    • Overview
    • Write code
    • Share(d) code
View Categories

Responsive master-detail

WP Data Access allows users to create relationships between data tables. One table acts as the master table and another as the detail table. When the user clicks on a row of the master table, the detail table is automatically updated to reflect the relationship.

Example #

Suppose our database contains a department and an employees table. When the user clicks on a row in the department table, the employees for the selected department are shown.

For this example we need to create two data tables. One for table departments and one for table employees. Both data tables are shown on the same page. The departments table is shown above the employees table.

To connect the tables to each other we need to add two functions to the departments (master) table in the following format:

Advanced options

Function wpda_init_master_detail initializes the master-detail relationship and has the following parameters:

{
	"initComplete": "function( settings, json ) { wpda_init_master_detail( settings, json, pubId, detailTableName, masterColumnName, detailColumnName ) }",
	"drawCallback": "function( settings ) { wpda_nav_master_detail( settings, pubId, detailTableName ) }",
	"select": {
		"style": "single"
	}
}
settings taken from initComplete
json taken from initComplete
pubId id of the detail data table
detailTableName table name of the detail table
masterColumnName column name of the master table used for relationship (arrays are supported for multi column)
detailColumnName column name of the detail table used for relationship (arrays are supported for multi column)

Function wpda_nav_master_detail adds the navigation and has the following parameters:

settings taken from drawCallback
pubId id of the detail data table
detailTableName table name of the detail table

Inline demo #

Click a department to sync the employees table.

Deptno (key)DnameLoc
Deptno (key)DnameLoc

Empno (key)EnameJobMgrHiredateSalCommDeptno
Empno (key)EnameJobMgrHiredateSalCommDeptno

Here are my advanced options used for the inline demo

{
	"initComplete": "function( settings, json ) { wpda_init_master_detail( settings, json, 28, 'emp', ['deptno'], ['deptno'] ) }",
	"drawCallback": "function( settings ) { wpda_nav_master_detail( settings, 28, 'emp' ) }",
	"select": {
		"style": "single",
		"selector": "tr"
	},
	"pageLength": 2
}

Notes #

  • Responsive master-detail pages do not require page updates
  • Supported with client-side and server-side processing
  • Supporting multiple column relationships (array size masterColumnName = array size detailColumnName)
  • This features requires a premium license
Share This Article :
  • Facebook
  • X
  • LinkedIn
  • Pinterest
Still stuck? How can we help?

How can we help?

Updated on 2025-02-13
Row groupingMaster-detail tables

Submit a Comment Cancel reply

Your email address will not be published. Required fields are marked *

Table of Contents
  • Example
  • Inline demo
  • Notes
WP Data Access
  • Follow
  • Follow
Links
$

Imprint

$

Privacy policy

$

Cookie policy

Get in touch
$

Contact us

$

Free support forum

$

Premium support

Resources


WordPress plugin directory



YouTube tutorials

Copyright © 2025 | All Right Reserves

Manage Consent
To provide the best experiences, we use technologies like cookies to store and/or access device information. Consenting to these technologies will allow us to process data such as browsing behavior or unique IDs on this site. Not consenting or withdrawing consent, may adversely affect certain features and functions.
Functional Always active
The technical storage or access is strictly necessary for the legitimate purpose of enabling the use of a specific service explicitly requested by the subscriber or user, or for the sole purpose of carrying out the transmission of a communication over an electronic communications network.
Preferences
The technical storage or access is necessary for the legitimate purpose of storing preferences that are not requested by the subscriber or user.
Statistics
The technical storage or access that is used exclusively for statistical purposes. The technical storage or access that is used exclusively for anonymous statistical purposes. Without a subpoena, voluntary compliance on the part of your Internet Service Provider, or additional records from a third party, information stored or retrieved for this purpose alone cannot usually be used to identify you.
Marketing
The technical storage or access is required to create user profiles to send advertising, or to track the user on a website or across several websites for similar marketing purposes.
Manage options Manage services Manage {vendor_count} vendors Read more about these purposes
View preferences
{title} {title} {title}