Php 将数据Ajax发送到控制器并分配给模式框[laravel]

Php 将数据Ajax发送到控制器并分配给模式框[laravel],php,laravel,Php,Laravel,路线 Route::get('showmodel','StudentController@showmodal'); 路线::post('showmodal','StudentController@showmodal'); 看法 &时代; 学生资料 @如果($stud_details!='') {{Form::label('name','name:')}{{{$stud_details->name}} {{Form::label('rollno','rollno:')}{{{$stud_deta

路线

Route::get('showmodel','StudentController@showmodal');
路线::post('showmodal','StudentController@showmodal');

看法


&时代;
学生资料
@如果($stud_details!='')
{{Form::label('name','name:')}{{{$stud_details->name}}
{{Form::label('rollno','rollno:')}{{{$stud_details->rollno}
{{Form::label('dept','Department:')}{{{$stud_details->Department}
{{Form::label('course','course:')}{{{{$stud_details->course}
@恩迪夫
接近

我需要显示包含学生详细信息的模式框。但是ajax post不起作用。我已经从index方法返回学生数组,因此如果我返回stud_details数组,它将显示学生未定义。。我不知道。

加载视图时应该使用不同的功能,获取数据时应该使用不同的功能

要检索您的学生,请执行以下操作:

路线:

<a href="javascript:void(0)" id="{{ $student->id }}" data-toggle="modal" data-target="#myModal"><span class="glyphicon glyphicon-eye-open" aria-hidden="true"></span></a>
         <!-- Modal -->
    <div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
      <div class="modal-dialog" role="document">
        <div class="modal-content">
          <div class="modal-header">
            <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
            <h4 class="modal-title" id="myModalLabel">Student Details</h4>
          </div>
          <div class="modal-body">
          @if ($stud_details!= '')
                <table class="table table-bordered">
                    <tr><td>{{ Form::label('name', 'Name:') }}</td><td>{{ $stud_details->name}}</td></tr>
                    <tr><td>{{ Form::label('rollno', 'RollNo:') }}</td><td>{{ $stud_details->rollno}}</td></tr>
                    <tr><td>{{ Form::label('dept', 'Department:') }}</td><td>{{ $stud_details->department}}</td></tr>
                    <tr><td>{{ Form::label('course', 'Course:') }}</td><td>{{ $stud_details->course}}</td></tr>
                </table>
          @endif 
          </div>
          <div class="modal-footer">
            <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
          </div>
        </div>
      </div>
    </div>
学生控制员

Route::get('showmodal', 'StudentController@getStudent');
AJAX

public function getStudent()
{
    $EID = $_POST['EID'];
    $stud_details= Student::find($EID);
    return $stud_details;   //just return the value not the View
}

这样做的目的是将数据发送回ajax,并获取模式的每个字段以加载每个值。

刀片页面使用此元代码并发出ajax请求

$.ajax({
    cache: false,
    type: 'get',
    url: url,
    data:  { 'EID': Id,'_token': csrf },
    success: function(data) {
        alert(data);
        $modal.find('name').html(data['name']);
        $modal.find('rollno').html(data['email']);
          ........
    }
});
如果您使用ajax请求控制器,请不要使用返回视图,所以请更改

$.ajaxSetup({

 headers: {
 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}         
});
$.ajax({
    cache: false,
    type: 'post',
    url: url,
    data:  { 'EID': Id},
    success: function(data) {
        alert(data);
        $modal.find('name').html(data['name']);
        $modal.find('rollno').html(data['email']);
          ........
    }

控制器我做了一些更改,请参考

return json_encode('stud_details')

当您通过post方法提交ajax请求时,您需要传递CSRF令牌来验证请求。通常,如果我进行了大量类似的ajax调用,我会使用
$.ajaxSetup({headers:{'X-XSRF-token':$('meta[name=“\u-token”]').attr('content')})预先设置头
谢谢..现在是ajax后期工作…然后是如何将数据设置为模态框..您可以从laravel controller的方法返回插入的数据,并使用jquery将该数据附加到laravel模型弹出窗口。Dude,您没有使用laravel内置工具,如Blade或Request helper。。请阅读他们的文件
<meta name="csrf-token" content="{{ csrf_token() }}">
$.ajaxSetup({

 headers: {
 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}         
});
$.ajax({
    cache: false,
    type: 'post',
    url: url,
    data:  { 'EID': Id},
    success: function(data) {
        alert(data);
        $modal.find('name').html(data['name']);
        $modal.find('rollno').html(data['email']);
          ........
    }
return view
return json_encode('stud_details')
public function showmodal(){
$EID = $_POST['EID'];
$stud_details= Student::find($EID);
//return $stud_details; 
return json_encode('stud_details');}