Весело играл с jtable, но застрял в какой-то колее.
У меня проблема с доступом к данным из запроса POST. Я пытаюсь передать переменную из значения поля в таблице, чтобы я мог сделать собственный запрос SQL.
Моя главная страница.php:
$(document).ready(function () {
//Prepare jTable
$('#PeopleTableContainer').jtable({
title: 'Trip data';
ajaxSettings: {
type: 'POST'
},
actions: {
listAction: 'tableactions.php?action=list',
updateAction: 'tableactions.php?action=update',
deleteAction: 'tableactions.php?action=delete'
},
fields: {
user_id: {
key: true,
edit: false,
list: false
},
name: {
title: 'Name',
edit: false,
list: false
},
trip_id: {
title: 'Trip ID',
list: false,
edit: false
},
trip_name: {
title: 'Trip Name',
width: '50%'
},
time: {
title: 'Start time',
width: '25%',
edit: false
},
date: {
title: 'Start date',
width: '25%',
edit: false
}
}
});
//Load person list from server
$('#PeopleTableContainer').jtable('load');
});
Я добавил свойство AJAX, чтобы убедиться, что оно установлено для публикации. Вот часть tableactions.php:
if($_GET["action"] == "list")
{
//Get user ID
$user_id = $_POST['user_id'];
//SQL query
$result = mysql_query("select * from userdata WHERE user_id=$user_id group by trip_id");
//Add selected records into an array
$rows = array();
while($row = mysql_fetch_array($result))
{
$rows[] = $row;
}
//Return result to jTable
$jTableResult = array();
$jTableResult['Result'] = "OK";
$jTableResult['Records'] = $rows;
print json_encode($jTableResult);
}
Я попытался изменить $ user_id на правильное значение вручную, и таблица работает и отображает правильную информацию. Действительно ломать голову, чтобы попытаться решить это.
Я что-то упустил очевидное? Почему я не могу получить значение из $ _POST?
Любая помощь будет принята с благодарностью!
Я исправил это, очистив мой код и добавив его в свойства таблицы:
ajaxSettings: {
type: 'POST',
data: {'UserId': '<?php echo $userid;?>'},
url: './tableactions.php'
},
Работает нормально сейчас.
Других решений пока нет …