2017-05-27 68 views
0

我在我的控制器中有一個查詢,它以json格式返回數據,現在我試圖用ajax和jquey顯示返回的數據。但每次輸出都是:[objet Object]。我正在尋找犯錯,如果有人能幫助...如何在ajax成功後顯示json?

這是Ajax代碼

<script> 
    $('#sub').click(function() { 
     var date1=$('#date1').val(); 
     var date2=$('#date2').val(); 
     var token=$('#token').val(); 
     $.ajaxSetup({ 
      headers: { 
       'X-CSRF-TOKEN': $('meta[name="_token"]').attr('content') 
      } 
     }) 
     $.ajax 
     ({ 

      url:"{{Url('showJobTime')}}", 
      type:'post', 
      dataType:'json', 
      data:{'date1':date1,'date2':date2,'_token':token,'id':id}, 
      success:function(response) 
      { 

       alert(response);//the output is object Object 
       //alert('success'); 
       $.each(response,function(index,element){ 
        $('#show').text({text:element.time1}); 
       }); 

      },error:function (error) { 

       alert('error'); 
       // console.log(error); 

      } 

     }); 

    }); 

</script> 

,這是控制器

public function searchJobTime() 
{ 

    $inputs=Request::all(); 
    $date1=$inputs['date1']; 
    $date2=$inputs['date2']; 
    $data=DB::table('consultant_timings')->whereNotBetween('date',[$date2,$date1])->get(); 
    return response()->json($data); 

} 
+0

而不是警報(響應)嘗試的console.log(Response),並告訴我們輸出請 –

+0

我用的console.log(響應),但沒有什麼作爲輸出 –

+1

剛剛發現瞭解造成這種行爲的原因。看看我的回答:) –

回答

0

取而代之的警報使用 console.log(response); 在開發中來ols,你可以看到返回的Jon對象的結構。

+0

TNX.after console.log()我得到了什麼.... –

0

你的反應是對象的數組,你應該使用console.log(response)代替警報

+0

我用console.log(響應),但沒有任何顯示 –

+0

TNX.after console.log()我得到該怎麼辦... –

1

你的後端返回沒什麼前端。嘗試使用echo而不是返回。使用echo,你會實際編寫json,以便瀏覽器讀取它。如果你不這樣做,你會返回json字符串到任何正在調用searchJobTime()函數,而不是將它寫入瀏覽器。

public function searchJobTime() 
{ 

    $inputs=Request::all(); 
    $date1=$inputs['date1']; 
    $date2=$inputs['date2']; 
    $data=DB::table('consultant_timings')->whereNotBetween('date',[$date2,$date1])->get(); 
    echo response()->json($data); 

} 
0

我用的console.log(響應[0])找到輸出是什麼爲親愛的朋友們說... ...和使用$。每個()jQuery的方法來考慮的數據顯示如下

,並再次,如果任何人上面的描述正確的我將不勝感激......

Ajax代碼

<script> 
    $('#sub').click(function() { 
     var date1=$('#date1').val(); 
     var date2=$('#date2').val(); 
     var token=$('#token').val(); 

     $.ajaxSetup({ 
      headers: { 
       'X-CSRF-TOKEN': $('meta[name="_token"]').attr('content') 
      } 
     }) 
     $.ajax 
     ({ 

      url:"{{Url('showJobTime')}}", 
      type:'post', 
      dataType:'json', 
      data:{'date1':date1,'date2':date2,'_token':token}, 
      success:function(response) 
      { 
       //alert('success'); 
       //console.log(response[0]); 
       $('#change').empty(); 
       $.each(response,function(key,value){ 
         $('#change').append(
          "<tr class='odd gradeX'>"+ 
           "<td><input type='checkbox' class='checkboxes' value='1' /></td>"+ 
           "<td class='hidden-phone' id='firstName'>"+value.date+"</td>"+ 
           "<td class='hidden-phone' id='lastName'>"+value.date+"</td>"+ 
           "<td class='hidden-phone' id='date'>"+value.date+"</td>"+ 
           "<td class='hidden-phone' id='time1'>"+value.time1+"</td>"+ 
           "<td class='hidden-phone' id='time2'>"+value.time2+"</td>"+ 
           "<td class='hidden-phone'><span class='label label-success'>Approved</span></td>"+ 
         "</tr>"); 
        }); 

      },error:function (error) { 

       alert('error'); 
       // console.log(error); 
      } 

     }); 

    }); 

</script> 

和控制器代碼

public function searchJobTime() 
{ 

    $inputs=Request::all(); 
    $date1=$inputs['date1']; 
    $date2=$inputs['date2']; 
    $data=DB::table('consultant_timings')->whereBetween('date',[$date2,$date1])->get(); 
    return response()->json($data); 

} 
0

嘗試$("#form_id").serialize()代替var date1=$('#date1').val(); var date2=$('#date2').val(); var token=$('#token').val();

+0

你能解釋一下嗎? –

+0

$(「#form_id」)。serialize()是一種避免手動傳遞每個參數的方法 –

+0

如果你想獲得你想要的組合html,你可以使用heredoc但這不是最好的做法。這裏是一個例子:https://github.com/asyncpjax/didactic-sniffle/blob/master/heredoc.php –