【发布时间】:2015-09-09 16:35:19
【问题描述】:
我有一个表单评论部分,用户可以在其中回复评论。每个评论都有一个带有回复框的表单。我正在从数据库中获取 cmets 并运行以下循环。
@foreach($responses as $response)
<li>{{$response->answer}}</li>
<form action="{{action('DiscussionController@postAnswerQuestion', [$entry_year, $grade_id, $subject_id, $question_id])}}" method="post" id="form1">
<input type="text" name="reply" value="" placeholder="Reply">
<input type="hidden" name="response_id" value="{{$response->id}}">
<input type="submit" name="" value="reply">
</form>
@endforeach
当我使用普通 PHP 提交 php 表单时,它提交得很好,但是当使用 jquery ajax 和以下代码时。
var formData = {
'answer' : $('input[name=answer]').val(),
'reply' : $('input[name=reply]').val(),
'response_id' : $('input[name=response_id]').val(),
};
它只在谷歌搜索后才返回第一个输入的值,我发现我应该使用序列化,所以我使用了下面的而不是上面的 jquery 代码
var formData = $('#form1').serialize();
但是现在这些值没有被捕获,并且这些值作为空值传入 php。我该如何解决上述问题?
非常感谢大家!
【问题讨论】:
-
您是否将 formData obj 传递给您的 php 页面?如果是这样,您认为 formData obj 是 null 还是 undefined ?
-
你有一个循环中的
id="form1"->@foreach($responses as $response),所以你有多个相同的ids,而不是uniqueids -
我能想到的一种方法是,将 jquery 代码保存在 $('#form1').submit() 事件中,然后使用 $(this).serialize 引用所有变量() 。但我建议你在表单中添加一个类而不是 id 然后使用 $('.form1')
标签: javascript php jquery ajax laravel