Я занимаюсь разработкой компонента joomla и использую AJAX в моем представлении для извлечения содержимого таблицы базы данных путем отправки запроса get в контроллер, а затем путем создания объекта данных модели, который я назвал функцией в моей модели, которая, в свою очередь, возвращает JSON объект.
Теперь моя проблема состоит в том, чтобы отобразить содержимое этого объекта в HTML-таблице через jQuery.
Вот мой код:
jQuery("#papertitle").change(function(){
console.log('eneterd jquery function');
var title =jQuery('#papertitle').val();
jQuery.ajax({
type: 'GET',
url: "http://localhost/joomladev/index.php?option=com_journals&task=payments&format=raw&title="+title,
data: {title : title},
success: function(data){
console.log('data',data);
jQuery('#data-table').html(data);
}
});
});
где data-table — это мой div И он показывает объект JSON как вывод:
array (size=1)
0 =>
object(stdClass)[165]
public 'paperid' => string '4' (length=1)
public 'journalid' => string '7' (length=1)
public 'papertitle' => string 'Big Data' (length=8)
public 'classification' => string 'computer science' (length=16)
public 'status' => string 'complete' (length=8)
public 'comments' => string 'none' (length=4)
Но я хочу, чтобы детали объекта отображались в виде таблицы.
Любые предложения о том, как я могу сделать это с JQuery!
Я бы закодировал объект как JSON в вашем контроллере (Http: //localhost/joomladev/index.php) и вернуть этот JSON.
Затем вы можете разобрать этот JSON с помощью JavaScript. В настоящее время вы получаете дамп объекта php, который не может / не должен анализироваться внутри JS, и создаете / заполняете таблицу.
Попробуйте это в вашей функции успеха ajax
success: function(data){
jQuery.each(data,function(key,row){
jQuery('#data-table').append('<tr>');
jQuery.each(row,function(key,column){
jQuery('#data-table').append('<td>'+column+'</td>');
});
jQuery('#data-table').append('</tr>');
});
}