2016-05-13 7 views
0

Laravelアヤックス変数

 <div class="panel panel-primary"> 
      <div class="panel-heading">Add user Status</div> 

     <form action="{{ route('post.create') }}" method="post"> 
      <div class="panel-body"> 
      <div class="form-group"> 
       <textarea class="form-control" name="body" id="new-post" rows="5" placeholder="Your Post"></textarea> 
      </div> 
       </div> 
      <div class="panel-footer clearfix"> 
       <button class="btn btn-info pull-right"><span class="glyphicon glyphicon-pencil" aria-hidden="true"></span></i> Post</button> 


      </div> 

      <input type="hidden" value="{{ Session::token() }}" name="_token"> 
     </form> 
      </div> 

      <div id="main" class="main"> 

       <header><h3>What other people say...</h3></header> 
       @foreach($top_15_post as $status) 
        {!! 
      view ('layouts.app-internal.user-status-layaout',[ 
      'status' =>$status, 
      'user' =>\App\User::find($status->user_id), 
      'comments'=>\App\Comment::where('status_id',$status->id)->get(), 
      'countcomment'=>\App\Comment::where('status_id',$status->id)->count(), 
      'countlike'=>\App\Like::where('like',1)->where('post_id',$status->id)->count() , 
      'countdislike'=>\App\Like::where('like',0)->where('post_id',$status->id)->count(), 



      ])->render() 
      !!} 
       @endforeach 
      </div> 
     </div> 
      </div> 

     </div> 
     </div> 
       </div> 
      <!-- Right part --> 


     </div> 
    </div> 
    </div> 

を更新これがlaravelの私home.blade.phpです。私は単純にポストテキストシステムを実装しています。上記の変数をuser-status-layaout.blade.phpに渡すと、コメントや好きなだけでなく投稿も表示されます。 これは私のuser-status-layaout.blade.phpです。私の好き嫌いの機能は正しく働いています。しかし私はajaxを使用してcountのような更新が欲しいです。私はajaxを使ってcountlikeとcountdislike変数を即座に更新しますか?

<div class="panel panel-default"> 
<div class="panel-heading">{{ $status->user->name }} Posted on {{ $status->created_at }}</div> 
<div class="panel-body"> 
    <div class="row"> 
     <div class="col-md-1"> 
      <img src="{{Auth::user()->getavatar()}}" class="img-responsive"> 
     </div> 
     <div class="post" data-postid="{{ $status->id }}"> 






      <p>{{ $status->body }}</p> 



      <div class="interaction"> 
       <a href="#" class="like">{{ Auth::user()->likes()->where('post_id', $status->id)->first() ? Auth::user()->likes()->where('post_id', $status->id)->first()->like == 1 ? 'You like this post' : 'Like' : 'Like' }}</a> | 
       <a href="#" class="like">{{ Auth::user()->likes()->where('post_id', $status->id)->first() ? Auth::user()->likes()->where('post_id', $status->id)->first()->like == 0 ? 'You don\'t like this post' : 'Dislike' : 'Dislike' }}</a> 

       @if(Auth::user() == $status->user) 
        | 
        <a href="#" class="edit">Edit </a>| 


        <form method="get" action="{{ route('post.delete', ['post_id' => $status->id]) }}" accept-charset="UTF-8" style="display:inline"> 
         <button class="btn btn-xs btn-danger" type="button" data-toggle="modal" data-target="#confirmDelete" data-title="Delete Post" data-message="Are you sure you want to delete this post ?"> 
          <i class="glyphicon glyphicon-trash"></i> Delete 
         </button> 
        </form> 


       @endif 




       <ul class="list-unstyled list-inline "> 
        <li> 

         <button class="btn btn-xs btn-info" type="button" data-toggle="collapse" data-target="#view-comments-{{$status->id}}" aria-expanded="false" aria-controls="collapseExample"> 
          <i class="fa fa-comments"></i>View & Comment </button> 
        </li> 

        <li>{{$countcomment}} comments</li> 

        <li >{{$countlike}} likes</li> 

        <li>{{$countdislike}} dislikes</li> 

       </ul> 


      </div> 



     </div> 

    </div> 
</div> 
<div class="panel-footer clearfix"> 
    <div class="form-group"> 
     <form action="{{ route('comment.create') }}" method="post"> 


      <div class="input-group"> 
       <input type="text" class="form-control" name="comment-text" id="comment-text" placeholder="Add Comment"> 
             <span class="input-group-btn"> 
              <button class="btn btn-info btn-xs" type="submit"><span class="glyphicon glyphicon-plus"></span>Add </button> 
             </span> 
       <input type="hidden" value="{{ $status->id }}" name="id" id="id"> 
      </div><!-- /input-group --> 
      <input type="hidden" value="{{ Session::token() }}" name="_token"> 
     </form> 



    </div> 

    <div class="collapse" id="view-comments-{{$status->id}}"> 

     @if($comments->first()) 
      @foreach($comments as $comment) 

       <blockquote > 
        <div class="row" > 
         <div class="col-md-1" > 
          <img src="{{\App\User::find($comment->user_id)->getavatar()}}" class="img-responsive"> 

         </div> 

         <div class="col-md-11"> 
          <ul class=" list-inline list-unstyled "> 
           <li> 
            <a href="">{{\App\User::find($comment->user_id)->name}}</a> 
           </li> 

          </ul> 

          <div class="comment" data-commentid="{{ $comment->id }}"> 
           <p> {{$comment->comment_text}}</p> 

          <div class="interaction1"> 



           @if(Auth::user() == $comment->user) 

            <a href="#" class="editcomment">Edit </a>| 


            <form method="get" action="{{ route('comment.delete', ['comment_id' => $comment->id]) }}" accept-charset="UTF-8" style="display:inline"> 
             <button class="btn btn-xs btn-danger" type="button" data-toggle="modal" data-target="#confirmDeleteComment" data-title="Delete Comment" data-message="Are you sure you want to delete this comment ?"> 
              <i class="glyphicon glyphicon-trash"></i> Delete 
             </button> 
            </form> 


           @endif 
          </div> 
          </div> 


         </div> 
        </div> 
        <p> posted {{$comment->created_at->diffForHumans()}}</p> 
       </blockquote> 



      @endforeach 
     @else 
      <p>This status no comment</p> 



     @endif 

    </div> 



</div> 

+0

"countlikeとcountdislike変数を即座に更新する"とはどういう意味ですか? 1)サイトの誰かが好き嫌いがあるときに、値を更新する必要があるということを意味しますか?または2)現在のユーザーが好き嫌いを押した場合、値は1ずつ増加するはずです。 – henrik

+0

はい、私の場合は最新のようなカウントを得るためにページをリロードする必要があります。私はページを再ロードせずに同様のカウントを取得したい –

答えて

0

あなたはWindowTimers.setTimeout()

$('some-selector').load(function(){ 
    function likeTimer() { 
     setTimeout(function(){ 
      // Some JSON request that updates the elements' values. 
      likeTimer(); 
     }, 1000); 
    } 
}); 

それとも、WindowTimers.setInterval()

$('some-selector').load(function(){ 
    setInterval(function() { 
     // Some JSON request that updates the elements' values. 
    }, 1000); 
}); 

で定期的にサーバーをポーリング可能性を使用してタイマー機能を作成することができそれからちょうどことLaravelにルートを定義します更新するデータのJSONを返します。