2014-10-31 31 views
0

我的JavaScript:数据库连接在不工作的AJAX呼叫 - laravel

$("#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', '[email protected]'); 
}); 

我控制器代码:

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新手。

任何建议将是有益的......

+0

使用Chrome浏览器开发工具,并交了什么错误/响应你有 – Saqueib 2014-10-31 09:48:31

+0

@Saqueib没有错,我的Java脚本工作正常,但**有控制器或视图**错误,但它不会显示在laravel调试器中:( – Ronser 2014-10-31 10:54:10

回答

0

你必须在脚本的AJAX语法错误,试试这个简单的API $.post()使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); 
+0

)AJAX调用中的语法错误是什么? – 2014-10-31 10:23:00

+0

'ajaxContent'有效载荷格式不正确 – Saqueib 2014-10-31 10:24:07

+1

当您应该使用对象时使用数组不是语法错误... – 2014-10-31 10:25:49