使用 JQuery Ajax in Laravel 5.4 将数据从控制器传递到视图

Pass data from controller to view using JQuery Ajax in Laravel 5.4

我有一个 laravel 应用程序,它有一个模态,我希望在其中执行数据库搜索并在同一模态中显示信息,而无需重新加载页面(这会导致模态消失)。

为此,我使用 jquery/ajax 将数据传递给控制器​​并获得结果。

但是我没有得到从控制器返回的正确格式的数据。或者我应该在 jQuery/AJAX.

中更改一些内容

我得到的结果是:

{{ $temoin->nnid }} {{ $temoin->nom }}  {{ $temoin->postnom }}  {{ $temoin->datenaissance }}

有什么建议吗?

代码:

路线

Route::post('/nouveau_ne', ['uses' => 'AdulteController@rechercheAdulte']);

jQuery/AJAX

$("#search_witness_btn").on('click', function() {
    var nnid_temoin = $('#nnid_temoin').val();
    if ($.trim(nnid_temoin) != '') {
        alert('ok '+nnid_temoin);
        $.post('/nouveau_ne',{nnid_temoin:nnid_temoin}, function(data) {
            $('#result_temoin').html(data);
        });
    } else {
        alert('ok '+nnid_temoin);
    }
});

控制器

$nnid_temoin = $request->input('nnid_temoin');

$temoin = t_adulte::join('t_individus', 't_adultes.nnid', '=', 't_individus.nnid')
    ->select(['t_individus.nnid','t_individus.nom','t_individus.postnom','t_adultes.datenaissance'])
    ->where('t_adultes.nnid','=',$nnid_temoin)
    ->get();

$result = '<td>{{ $temoin->nnid }}</td><td>{{ $temoin->nom }}</td><td>{{ $temoin->postnom }}</td><td>{{ $temoin->datenaissance }}</td>';
return $result;

您的 $result 字符串应该包含值,而不是变量。你不是运行通过你的模板引擎来处理绑定的结果字符串。

找到解决方案

我不得不改变这个:

$result = '<td>{{ $temoin->nnid }}</td><td>{{ $temoin->nom }}</td><td>{{ 
$temoin->postnom }}</td><td>{{ $temoin->datenaissance }}</td>';
return $result;

对此:

foreach ($temoin as $temoin) {

        $nnid=$temoin->nnid;
        $nom=$temoin->nom;
        $postnom=$temoin->postnom;
        $date=$temoin->datenaissance;

        return '<td class="nnidtemoin" id="nnidtemoin">'.$nnid.'</td><td>'.$nom.'</td><td>'.$postnom.'</td><td>'.$date.'</td>';
        # code...
    }

非常感谢@all