Я бы назначил идентификатор для таблицы, которая соответствует вашим столбцам в SQL-таблице.
$("table thead th").click(function(){
$.getJSON('ajax/get_results.php',
{sortby: $(this).attr('id')},
function(data) {
$.each(data, function(){
// fill table here
}
});
});
Вы можете создать некоторую функцию для сортировки таблицы, которую вы также можете использовать для изменения страницы с помощью AJAX, если вы этого еще не сделали.
А на бэкэнде потом сортируй с SQL
"SELECT * FROM table ORDER BY ".$_GET['sortby']
Конечно, вы должны защитить эту сортировку, например, отфильтровать ее с массивом допустимых значений. Я бы предложил создать массив с разрешенными именами сортировки столбцов и использовать функцию array_intersect () , чтобы отфильтровать только разрешенные значения или просто проверить с помощью
if(isset($allowed_columns[$_GET['sortby']]))
Затем просто выведите все это в JSON, поместив все результаты в массив, а затем:
echo json_encode($array_with_results);
Полагаю, вы хотели бы вывести что-то подобное в JSON:
{
{col1: 'row1',col2: 'row1',col3: 'row1'},
{col1: 'row2',col2: 'row2',col3: 'row2'},
{col1: 'row3',col2: 'row3',col3: 'row3'}
}