所以我试图通过ajax发送表单数据,并使用序列化来执行此操作。我也尝试过serializeArray并得到相同的结果。我希望有人可以帮助我排除故障,因为我觉得我已经尝试了一切。请在下方查看我的代码片段:
function quizSubmit($quiz){
console.log($quiz);
var form='#'+$quiz;
var data1=$(form).serializeArray();
console.log(data1);
$.ajax({
type : 'POST',
url : 'quizsubmit.php?quiz='+$quiz,
data : data1,
beforeSend : function() {
$('#checklist-info-container').html('processing');
console.log("sending");
},
error : function() {
$('#checklist-info-container').html('failure');
console.log("fail");
},
// success callback
success : function (response) {
$('#checklist-info-container').html(response);
console.log("success");
},
timeout : 3000,
})
}

<table class="checklist-table">
<form id="<?php echo $id; ?>" name="q1" method="post">
<tr>
<td class="checklist-info-title"><?php echo($title); ?></td>
</tr>
<tr>
<td class="checklist-info-description"><div>
<div class="form-group required quiz-question">
<label class="control-label" for="question1">What did you learn?</label>
<div class="radio">
<label><input type="radio" name="question1" value="answer1">Nothing</label>
</div>
<div class="radio">
<label><input type="radio" name="question1" value="answer2">Something</label>
</div>
</div>
<div class="form-group required quiz-question">
<label class="control-label" for="question2">Question 2</label>
<div class="radio">
<label><input type="radio" name="question2" value="answer1">Answer 1</label>
</div>
<div class="radio">
<label><input type="radio" name="question2" value="answer2">Answer 2</label>
</div>
</div>
<div class="form-group required quiz-question">
<label class="control-label" for="question3">Question 3</label>
<div class="radio">
<label><input type="radio" name="question3" value="answer1">Answer 1</label>
</div>
<div class="radio">
<label><input type="radio" name="question3" value="answer2">Answer 2</label>
</div>
</div>
<div class="form-group required quiz-question">
<label class="control-label" for="question4">Question 4</label>
<div class="radio">
<label><input type="radio" name="question4" value="answer1">Answer 1</label>
</div>
<div class="radio">
<label><input type="radio" name="question4" value="answer2">Answer 2</label>
</div>
</div>
</div></td>
</tr>
<tr>
<td class="quiz-button"><button class="btn btn-success" onclick="quizSubmit(<?php echo $id; ?>);">Submit</button></td>
</tr>
</form>
</table>
&#13;
第二个控制台日志打印输出保持打印长度为0的数组,其中没有任何内容。但我不确定为什么。
答案 0 :(得分:0)
您需要更改您的JavaScript代码。将$ quiz替换为测验
function quizSubmit(quiz){
console.log(quiz);
var form='#'+quiz;
var data1=$(form).serializeArray();
console.log(data1);
.......
.......
}
jQuery将全局$变量设置为具有许多特殊行为的对象,因此以$开头的变量通常保留给与jQuery相关的变量或值。
你是html代码,你没有将变量作为jquery对象传递。看来你传递的是javascript变量。