首页 > 解决方案 > 动态发布 post_id 和用户身份验证 ID 以进行评论,例如系统,其中评论表单显示为弹出窗口以评论每个帖子

问题描述

我正在创建一个评论系统,用户可以在其中评论每个帖子,当用户单击评论按钮弹出框将出现多个字段时,表单从 jquery 发布到 db,我有一个问题,我无法存储 post_id 和用户身份验证 id db 通过 jquery formData 方法

   @foreach($customerposts as $customerpost)
   <button type="button" class="btn btn-info" data-toggle="modal" data- 
   target="#maskup-{{$customerpost->id}}" style="float:right;  margin- 
   top:50px;" id="bidnow" value="{{$customerpost->id}}">Comment 
   Now</button>
   @include('forms.commentform')
   @endforeach

评论表单
创建的表单字段显示正确的帖子ID和用户ID在这里通过隐藏字段也不起作用

   </form>

    >jquery
    $( 'form' ).submit(function ( e ) {
    var data;
    data = new FormData();
    data.append('message', $("#message").val());
    data.append('hidden', $("#hidden").val()); can't get this value from 
    controller         
    // console.log(data);
        alert(data);
        $.ajax({
        url: 'api/comment/',
        data: data,
        processData: false,
        contentType: false,
        type: 'POST',
        });

我想为每个帖子动态发布 post_id 和用户 ID

我的控制器

public function Bidpost(Request $request)
    {    

      $validator = \Validator::make($request->all(), [`enter code here`
        'message'=>'required'
        ]);

        if ($validator->fails())
        {
            return response()->json(['errors'=>$validator->errors()->all()]);
        }

        $bidon = new ContributerBidOn();
        $bidon->user_id = '5'; //can;t het user id from hidden field
        $bidon->post_id = '8';

        $bidon->Guarantee_Of_Product = $request['message'];

        $bidon->save();
        return response()->json(['success'=>'Data is successfully added']);
    }
}
Route api
Route::post('/bidon/','BidController@Bidpost');

标签: javascriptphpjquerylaravel

解决方案


有点难以理解你想在这里做什么。但我猜您无法在 ajax中发送帖子 ID和经过身份验证的用户 ID 。

我的建议是,当您单击评论时,您可以从按钮获取帖子 ID,因为您的 ID 存在于按钮value="{{$customerpost->id}}"值中

将 btnForComments 类添加到 for 循环内的按钮并删除 id 属性

$(".btnForComments").click( function() {
 var postId = $(this).val();
 });

从 for 循环中的按钮中删除 id bidnow。因为 id 在 DOM 中应该是唯一的。

对于经过身份验证的用户 ID,您不必发送它或将其隐藏在 ajax 中,因为您可以直接从 Controller 中的 Session 获取它。否则,您可以将 id 分配给 javascript 变量并在 ajax 中传递它。但是,所有评论的经过身份验证的使用 ID 都是相同的。


推荐阅读