2016-07-19 8 views
0

私はlaravelに取り組んでいます。編集する複数のフィールドを持つ投稿を編集したいと思います。 私は自分の投稿のボディフィールドでこれをうまくやったが、他の2つで達成したい。投稿フィールドを投稿してjqueryを使用して更新する

関連controllerコード:以前のデータを取得する必要がどこから

$post->body=$data['body']; 
$post->state = $data['state']; 
$post->problem_domain = $data['problem_domain']; 
$post->update(); 
return response()->json(['new_body'=>$post->body],500); 

blade

<article class="post" data-postid="{{ $post->id }}"> 
    <p> {{ $post->body }} </p> 
    <p> <b> Region: </b> {{ $post->state }} &nbsp <b> Problem Domain: </b> 
    {{ $post->problem_domain}}</p> 
    <div class="info"> 
     posted by <b>{{ $post->user->name }}</b> on 
     <b>{{ $post->created_at }}</b> 
    </div> 
    <div class="interaction"> 
     <a href="#" class="like">{{ Auth::user()->likes()->where('post_id',$post->id)->first() ? Auth::user()->likes()->where('post_id',$post->id)->first()->like == 1 ? 'You like this post':'Like':'Like'}} </a> 
     <a href="#" class="like">{{ Auth::user()->likes()->where('post_id',$post->id)->first() ? Auth::user()->likes()->where('post_id',$post->id)->first()->like == 0 ? 'You don\'t like this post':'Dislike':'Dislike'}}</a> 
     @if(Auth::user() == $post->user) 
     <a href="#" class="edit" >Edit</a> 

、最終的に私のjs fileを、正しいであるbodyのフォーマットを見てください。他の2人と同じことをしたい

var postId=0; 
var postBodyElement=null; 
$('.post').find('.interaction').find('.edit').on('click',function(event){ 
    event.preventDefault(); 
    postBodyElement=event.target.parentNode.parentNode.childNodes[1]; 
    var postBody=postBodyElement.textContent; 
    postId=event.target.parentNode.parentNode.dataset['postid']; 
    $('#post-body').val(postBody); 
    $('#edit-modal').modal(); 
}); 
$('#modal-save').on('click',function() 
    { 
     $.ajax(
      { 
      method : 'POST', 
      url : urlEdit, 
      data: {body: $('#post-body').val(), state: $('#post-state').val(), 
      problem_domain: $('#post-problem_domain').val(), postId: postId, _token: token} 
     }) 
     .done(function(msg) 
      { 
       $(postBodyElement).text(msg['new_body']); 
       $('#edit-modal').modal('hide'); 
      }); 
    } 
); 
+0

bodyとは異なる他の属性を設定すると、レコードは更新されません。 –

+0

レコードは更新されますが、jqueryは機能しません。例えば、モーダルは完了後に隠されません。私は変更を見るためにリフレッシュする必要があります。 @JoseRojas – Nitika

答えて

0

あなたのコントローラでは、あなただけのこのラインで体を返している:

return response()->json(['new_body'=>$post->body],500); 

あなたはこのように、完全なモデルや他の属性を返す必要があり、次のいずれか

return response()->json($post, 500); 

とあなたで他の属性を更新する。

+0

私はすでにこれを試してみました。問題は、編集目的でデータベースにあるドロップダウン用のデータをロードする方法です。私が使っているコードは '' postState = postBodyElement.childNodes [5] .textContent; $( '#post-state')です。 '_body_と同じように動作しますが、動作しません。 @JoseRojas – Nitika

+0

ドロップダウンにはどのような属性を表示しますか?いくつかのHTMLフレームワークを使用していますか? @Nitika –

+0

私はブートストラップのモーダルウィンドウを使って投稿を編集しています。私の投稿には、ユーザーからドロップダウンまでの地域が含まれています。編集時に投稿の地域コンテンツにアクセスし、jsonに返信したい@JoseRojas – Nitika

関連する問題