私は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 }}   <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');
});
}
);
bodyとは異なる他の属性を設定すると、レコードは更新されません。 –
レコードは更新されますが、jqueryは機能しません。例えば、モーダルは完了後に隠されません。私は変更を見るためにリフレッシュする必要があります。 @JoseRojas – Nitika