아약스를 통해 양식 데이터를 보내려고하고 serialize를 사용하여 그렇게합니다. 난뿐만 아니라 serializeArray 시도하고 동일한 결과를 얻고있다. 나는 누군가가 내가 모든 것을 시도한 것처럼 느껴지기 때문에 내가 문제 해결을 도울 수 있기를 바랬다. 아래에있는 내 코드 조각을 참조하시기 바랍니다 :Serialize가 빈 배열을 펌핑합니다.
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>
두 번째 콘솔 로그 인쇄 아웃 거기에 아무것도 길이 0의 배열을 인쇄 유지합니다. 그러나 이유는 확실하지 않습니다.
'$ quiz'는 문자열이나 jQuery 객체가 해당 함수에 전달 될 때 사용됩니까? – ficuscr
첫 번째 콘솔 로그 인쇄 란 무엇입니까? console.log ($ quiz); –
내 첫 번째 콘솔 로그는 "q1"인 양식의 ID를 출력합니다 (실제로 양식 요소 전체를 표시합니다 :
– Chaosdestined