ajax - 如何在ajax中获得字符串响应?
问题描述
我正在尝试使用 Ajax 刷新显示我的数据库的一小部分的页面的一部分。我的问题是我试图发回的结果是(长)字符串的形式,我找不到将字符串作为 ajax 响应发送的方法。我是 ajax 的初学者,我不知道如何解决这个问题。
这就是我的 ajax 的样子:
$.ajax({
url: "{{ url('/news/lastfive') }}",
method: 'get',
success: function(result){
$('#machin').html(result);
}
});
还有 php 函数(我在 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 字符的编码存在问题。这里有没有我想念的更好的解决方案?
我希望这个问题不会太愚蠢;)
解决方案
有一种更简单的方法可以做到这一点,使用view()
. 将生成的 HTML 保存为.blade.php
文件:
table.blade.php
:
<table>
<tbody>
@foreach ($liste as $elements)
<tr>
@foreach($elements as $element)
<td>{{ $element->author }}</td>
<td>{{ $element->message }}</td>
<td>{{ $element->date }}</td>
@endforeach
</tr>
@endforeach
</tbody>
</table>
然后,不要在 PHP 中生成 HTML,而是通过以下方式加载文件view()
:
Controller
:
public function lastfive(){
$liste = DB::table('news')->latest()->limit(5)->get();
$html = view('table')->with(['liste' => $liste])->render();
return response()->json(['html' => $html]);
}
这样,您可以查询您的数据库,将元素传递给您的table.blade.php
视图,用于render()
将其转换为包含您的 HTML 的字符串,最后通过返回 HTMLresponse()->json()
编辑:
您的 AJAX 响应应稍作更改:
$('#machin').html(result.html);
result.html
设置元素内容的目标。
推荐阅读
- python-3.x - 如何计算 pyspark RDD 的一个键中的所有值?
- python - 如何将来自不同dict的相同键值与百分比进行比较
- c# - Swagger UI 和 ASP.NET - 未找到映射异常 - 无法访问 swagger UI 页面
- c# - 如何使用 C# 在 SharePoint Online 中读取单个文件的内容
- node.js - 使用 cookieSession 进行 Supertest 测试时,Passport 未设置 req.user
- c++ - 如何减少当前序列化所需的样板
- php - 从复杂数组创建简单数组
- bash - 使用 awk 计算行的平均值
- tensorflow - TensorFlow 可变形状分配
- oracle - 解锁 apex 管理员帐户