【发布时间】:2018-06-23 07:53:43
【问题描述】:
我在渲染视图并在 ajax 调用后用另一个 html 部分替换它时遇到了一点奇怪的问题。
代码如下:
// ajax - 控制器函数
$view = view('renderedData', [
'test' => $data['test'],
'unicorn' => $data['unicorn'],
])->render();
return json_encode($view);
//我的ajax:
function sendData() {
var test= "test data"
var dummy = "unicorn whatever"
$.ajax({
type: "post",
url: "{{ route('ajaxRender') }}",
data: {'test': test, 'dummy': dummy},
success: function (data) {
$('tbody').replaceWith(data)
}
}); //end of ajax
}
renderedData.blade 视图 html:
<tbody>
@foreach($data as $d)
<tr>
<td>{{ $c->name }}</td>
<td>{{ $c->$date }}</td>
<td>{{ $c->$height }}</td>
</tr>
@endforeach
</tbody>
(刀片中根本没有空格或空行)
控制台中的响应如下所示:
"<tbody>\r\n <tr>\r\n <td>mydata<\/td>\r\n <td>mydata<\/td>\r\n <td>mydata<\/td>\r\n <td>mydata<\/td>\r\n <td>mydata<\/td>\r\n <\/tr>\r\n <tr>\r\n <td>mydata<\/td>\r\n <td>mydata<\/td>\r\n <td>mydata<\/td>\r\n <td>mydata<\/td>\r\n <td>mydata<\/td>\r\n <\/tr>\r\n <\/tbody>"
我正在用新的 tbody 部分替换旧的 tbody 部分。然而,我的表被我的数据和那些“\r \n ”填满了,我不知道为什么。如下图所示:
我在 web 控制台中发现的另一件事是 json html 看起来不错,下面的答案确实有那些 "\r \n ..."
我认为“return json_encode($view);”有问题因为如果我尝试“return $view” - 我可以看到 html 格式正确。
【问题讨论】:
-
// 哦,对不起我的英语不好
-
为什么不只在视图中返回一个数组? return [ 'test' => $data['test'], 'unicorn' => $data['unicorn'], ]
标签: javascript json ajax laravel