내 함수는 백엔드 서버의 데이터를 통해 구문 분석하고이 데이터를 사용하여 구문 분석 된 데이터를 HTML 문자열로 표시하는 renderHTML()
함수를 만듭니다. 데이터를 표시하고 체크 박스를 완벽하게 첨부 할 수도 있습니다. 나는 사용자가 체크 박스를 클릭 할 때 Ajax를 사용하여 questionid에서 수행 할 수있는 질문을 선택한 값을 보낼 수 있도록 questionid 값을 얻으려고합니다. questionid의 가치를 얻고 저장하고 Ajax를 통해 보내는 방법에 대해서는 잘 모르겠습니다.for 루프에서 확인란의 값을 얻는 방법
function receive() {
var text = document.getElementById("text").value;
var data = {
'text': text
};
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function() {
if (xhr.readyState === 4) {
var ourData = xhr.responseText;
var parsedData = JSON.parse(ourData);
console.log(parsedData);
renderHTML(parsedData);
}
};
xhr.open("POST", "URL", true);
xhr.send(JSON.stringify(data));
}
var questionid;
function renderHTML(data) {
var htmlString = "";
for (i = 0; i < data.length; i++) {
htmlString += "<p><input type='checkbox' value='data[i].questionid'>" +
data[i].questionid + "." + "\n";
htmlString += '</p>';
}
response.insertAdjacentHTML('beforeend', htmlString);
var t = this;
var checkboxes = document.querySelectorAll('input[type="checkbox"]');
for (var i = 0; i < checkboxes.length; i++) {
checkboxes[i].onclick = function() {
if (this.checked) {
console.log(this.questionid.value);
}
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function() {
if (xhr.readyState === 4) {
var Data = xhr.responseText;
console.log(Data);
var parseData = JSON.parse(Data);
};
xhr.send(JSON.stringify(data));
}
}
}
:
이 코드는 당신이 찾고있는 것을한다. 당신은 어떤 지정도없이 그것을 선언하고 그것을 'data [i] .questionid'속성으로 사용하면, 이것을 조금 설명 할 수 있습니까? – Hanif
'questionid'는'receive()'함수에서'parsedData'로부터받은 (name : value) 쌍의 이름입니다. 나는'questionid'의 값에 접근하여 onclick을 통해 백엔드 서버로 보낼 수있게하려고했습니다. – newbie
"console.log (this.questionid.value);와 같은 값에 접근 할 수 없다고 생각합니다." "console.log (this.value);"시도해 주시겠습니까? " 입력 체크 박스에는 그런 속성이 없습니다. – Hanif