我有一个要求,即学生使用foreach回答问题(从数据库中回溯哪些问题),当所有答案填满后我必须传递给jquery,然后传递给控制器并保存到数据库。
<div>
<tbody>
<?php foreach ($questions as $question) { ?>
<tr>
<td ><?php echo $question['id']; ?></td>
<td> <?php echo $question['question']; ?> </td>
<td><input type='text' name='name' required="required" class="form-control" placeholder='Enter Your Answer'></td>
// this is answer field associated with each question
</tr>
<?php } ?>
</tbody>
</div>
<button class="btn btn-primary nextBtn btn-lg pull-right" id ="next" type="button" >Next</button>
当学生填写所有答案时(问题和答案)传递给jquery 这是脚本
<script>
$(document).ready(function($){
$(".gg").click(function(){
var array = $("input[name]").val();
$.ajax({
type: "POST",
datatype:"json",
url: BASE_URL+"student/info",
data: 'data='+array,
success: function(response) {
}});
return false;
});
});
</script>
当学生提交答案时,只有第一个答案传递给jquery函数,不能通过所有答案
答案 0 :(得分:1)
数据不合适
data: {'data=': array_variable },
如果你想更好地发送所有表单数据,你可以将它序列化并发送到你的php端并在那里序列化。就像:
data : $('#form').serialize()
var textboxes = $('input[name="answer[]"]').val();
data : {'data':textboxes},
答案 1 :(得分:0)
您需要动态输入文本框名称
代码
<div>
<form name='question' id='question' >
<tbody>
<?php foreach ($questions as $question) { ?>
<tr>
<td ><?php echo $question['id']; ?></td>
<td> <?php echo $question['question']; ?> </td>
<td><input type='text' name='name[<?php echo $question["id"]; ?>]' required="required" class="form-control" placeholder='Enter Your Answer'></td>
// this is answer field associated with each question
</tr>
<?php } ?>
</tbody>
</form>
</div>
<button class="btn btn-primary nextBtn btn-lg pull-right" id ="next" type="button" >Next</button>
在剧本中
<script>
$(document).ready(function($){
$("#id").click(function(){
$.ajax({
type: "POST",
url: BASE_URL+"student/info",
data: $('#question').serialize(),
success: function(response) {
}});
return false;
});
});
</script>