Я пытаюсь использовать Ajax для обновления части страницы, которая показывает небольшую часть моей базы данных. Моя проблема в том, что результат, который я пытаюсь отправить обратно, имеет форму (длинной) строки, и я не могу найти способ отправить строку в качестве ответа ajax. Я абсолютный новичок в ajax, и я не знаю, как решить эту проблему.
Вот как выглядит мой ajax:
$.ajax({
url: "{{ url('/news/lastfive') }}",
method: 'get',
success: function(result){
$('#machin').html(result);
}
});
И функция php (I 'я работаю в Laravel, поэтому есть некоторые функции laravel):
public function lastfive(){
$liste = DB::table('news')->latest()->limit(5)->get();
$str = <<<HTML
<table>
......
<tbody>
HTML;
foreach ($liste as $elements){
$str .= '<tr>';
foreach($elements as $element){
$str .= <<<HTML
<td>$element->author</td>
<td>$element->message</td>
<td>$element->date</td>
HTML;
}
$str .= '</td>';
}
$str .= '</tbody></table>';
return response()->json(['success'=>$str]);
}
Когда я делаю это, моя строка $ str не может быть закодирована в формате json, и она не работает.
Я такжепопробовал это в php:
public function lastfive(){
$liste = DB::table('news')->latest()->limit(5)->get();
$liste = json_encode($liste);
return response()->json($liste);
}
На этот раз мне удается вставить данные на мою html-страницу, но это гораздо менее удобно для макета и возникают проблемы с кодированием символов, отличных от ascii. Есть ли здесь лучшее решение, которое я пропускаю?
Надеюсь, этот вопрос не слишком глуп;)