繁体   English   中英

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

[英]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);
        }
    );
});

上面应该做的,如果数据库没有返回任何内容,请尝试在控制器中使用dd()来查看返回的结果

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

dd($muscles);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM