数据库连接在ajax调用中不起作用-laravel


database connectivity not working in ajax call- laravel

我的javascript是:

$( "#exerciseFetch" ).change(function( event ) {   //alert("super");
    // var _token = $( this ).find( 'input[name=_token]' ).val()
    var mytoken = $('#mytoken').attr('value');
    ajaxContent = [  
        {"_token": mytoken},
        {"val"  : $( "#exerciseFetch" ).val()}                            
    ]
    $.ajax({
        type: "POST",
        url: 'exerciseFetchAjaxCall', 
        data: { ajaxContent }
        // data: { "_token": mytoken }
    }).done(function( msg ) {
        alert( msg );
        var reqContent = msg;
        $("#dynamic").html(reqContent);
    });
});

我的路线:

Route::group(array('prefix' => 'admin', 'namespace' => 'App'Controllers'Admin'), function()
{
    Route::post('exerciseFetchAjaxCall', 'ExerciseController@exerciseAjaxCall');
});

我的控制器代码:

public function exerciseAjaxCall(){
    $row = $_POST['ajaxContent'];
    // $row[1]['val']
    $muscles = Muscular::whereIn('Status',array(1))->orderBy('id', 'desc')->paginate(10);
    // return    $this->content = View::make('admin.exercise.displayMusclarGroupAjax',array('row' => $row ));
    return $this->content = View::make('admin.exercise.displayMusclarGroupAjax',array('muscles' => $muscles ));
}

我的视图代码:

@if($muscles && count($muscles) > 0)
    @foreach($muscles as $muscular)
    <?php
        $icons = ["fa-icon-user", "fa-icon-user", "fa-icon-user inactive"];    
        $typeArray = [
            '1'=> 'Resistance',
            '2'=> 'Cardio'
        ];
        $typeArray[3] = 'Resistance & Cardio';
    ?>
    <tr>
        <td data-title="muscular_name">{{ ucfirst($muscular->muscular_name) }}</td>
        <td data-title="muscular_type">{{ $typeArray[$muscular->type]}}</td>                        
    </tr>
    <?php
        $i++;
    ?>
    @endforeach
@endif
@if(isset($row) && count($row) > 0)
    <?print_r($row);?>
@endif

如果我注释掉行内容并注释控制器中的肌肉内容,代码将返回传递的值,但如果未注释,则不会显示肌肉的内容。

我已经在它的列表页面中显示了带有相同代码的肌肉内容(但没有ajax调用),不知道为什么它不起作用,因为我是laravel的新手。

任何建议都会很有帮助。。。

您在ajax脚本中有语法错误,请尝试这个简单的$.post()API使ajax调用

 $( "#exerciseFetch" ).change(function( event ) {   //alert("super");
    // var _token = $( this ).find( 'input[name=_token]' ).val()
    var mytoken = $('#mytoken').attr('value'),
        ajaxContent = {
           "_token" : mytoken,
           "val"  : $( "#exerciseFetch" ).val()
        };
    //make ajax call 
    $.post( "exerciseFetchAjaxCall", ajaxContent ).done(
        function( msg ) {
            alert( msg );
            var reqContent = msg;
            $("#dynamic").html(reqContent);
        }
    );
});

如上所述,如果DB没有返回任何内容,请尝试控制器中的dd()以查看返回的结果

//are you sure `Status` is not in small case 
$muscles = Muscular::whereIn('Status',array(1))->orderBy('id', 'desc')->paginate(10);
dd($muscles);