【问题标题】:Laravel return rendered html view without \r \n -- jsonLaravel 返回渲染的 html 视图,没有 \r \n -- json
【发布时间】: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


【解决方案1】:

在渲染视图之前使用preg_replace

   $view = view('renderedData', [

                'test' => $data['test'],
                'unicorn' => $data['unicorn'],
            ])->render();

   $view = trim(preg_replace('/\r\n/', ' ', $view));

   return json_encode($view);

【讨论】:

    猜你喜欢
    • 2013-03-04
    • 1970-01-01
    • 1970-01-01
    • 2020-11-27
    • 1970-01-01
    • 1970-01-01
    • 2021-01-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多