我正在创建一个评论系统,用户可以在其中评论每个帖子,当用户单击评论按钮弹出框时将显示多个字段,表单从jquery发布到db,我有一个问题,我无法存储post_id和用户通过jquery formData方法对数据库的身份验证ID
@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');
答案 0 :(得分:0)
在这里很难理解您想做什么。但是我想您无法在Ajax中发送帖子ID 和经过身份验证的用户ID 。
我的建议是,当您单击评论时,您可以从按钮中获取帖子ID,因为您的ID出现在按钮 value =“ {{$ customerpost-> id}}” 中值
将btnForComments类添加到for循环中的按钮并删除id属性
$(".btnForComments").click( function() {
var postId = $(this).val();
});
从您的循环按钮中删除ID 出价现在。因为id在DOM中应该是唯一的。
对于经过身份验证的用户ID,您不必发送它或将其隐藏在ajax中,因为您可以直接从Controller的Session中获取它。 另外,您可以将ID分配给javascript变量,然后将其传递给ajax。尽管所有注释的身份验证使用ID都相同。