ProgramingTip

선택을 반복하고 선택하거나 선택하지 않는 각을 계산합니다.

bestdevel 2020. 10. 28. 20:20
반응형

선택을 반복하고 선택하거나 선택하지 않는 각을 계산합니다.


나는 약간의 문제에 부딪쳤다. 다음은 간단한 설명입니다.

표준 양식에 12 개의 선택이 있습니다. 내가해야 할 일이 있다는 것입니다.

사용하여 데이터베이스 필드에 입력 할 수 있습니다. 여기에 예가 있습니다.

(Check1- 선택됨)
(Check2- 선택되지 않음)
(Check3- 선택됨)

1,0,1

지금 까지이 코드가 있습니다.

$('input[type=checkbox]').each(function () {
           if (this.checked) {
               console.log($(this).val()); 
           }
});

모두가 아닌 확인 된 항목 만 다시 가져 오는 것을 제외하고 완벽하게 작동합니다.

새로운 질문에 대해 죄송합니다. 나는 jquery를 처음 사용합니다.


표시 한 형식으로보다 많은 것을 사용할 수 있습니다.

var sList = "";
$('input[type=checkbox]').each(function () {
    sList += "(" + $(this).val() + "-" + (this.checked ? "checked" : "not checked") + ")";
});
console.log (sList);

그러나 나는 @SLaks에 동의 할 수 있으며, 보관할 수 있습니다.

편집 : 죄송합니다, 즉석 출력 형식을 잘못 읽었습니다. 다음은 업데이트입니다.

var sList = "";
$('input[type=checkbox]').each(function () {
    var sThisVal = (this.checked ? "1" : "0");
    sList += (sList=="" ? sThisVal : "," + sThisVal);
});
console.log (sList);

선택기 사용

다음과 같이 선택할 수 있습니다.

var boxes = $(":checkbox:checked");

그리고 모두 다음과 같이 확인되지 않음.

var nboxes = $(":checkbox:not(:checked)");

해당 이름을 사용할 수 있습니다. 아무것도없는 경우 확인되지 않은 것입니다. PHP 확인 된 이름에서 배열이있는 경우 나중에 특정 상자를 확인 해야하는지 여부를 알기 위해 간단히 요청할 수 있습니다.in_array()

일련 화

jQuery는 양식 컨트롤의 상태를 유지 하는 방식으로 방법 도 있습니다 . 예를 들어, jQuery 웹 사이트에 예제는 다음과 가변적입니다.

single=Single2&multiple=Multiple&multiple=Multiple3&check=check2&radio=radio2

이렇게하면 확인 된 요소에 대한 정보도 있습니다.


을 작성하여 모든 것을 반복 할 수 있습니다 $(':checkbox').each(...).

귀하의 질문을 선택하면 다음 코드를 찾고 있습니다.

var str = "";

$(':checkbox').each(function() {
    str += this.checked ? "1," : "0,";
});

str = str.substr(0, str.length - 1);    //Remove the trailing comma

코드는 모든이 확인란을 반복하고 1,또는 0,문자열에 추가 합니다.


나는 원래 포스트에서 제기 된 스키마를 고려 사항에 충분한 시간을 기울이지 않았다고 생각한다. 여기에 모든 것을 위해 할 사항이 있습니다.

이 솔루션을 구축하고 가정 해 보겠습니다. 모든 정신적 가치는 단일 값으로 요약되고 데이터베이스에 저장됩니다. 코딩 데이터베이스 공간을 [약간] 절약하고 코딩 시간을 절약하고 있습니다.

이제 현재 체크 박스 3과 4 사이에 새 체크 박스를 추가하는 빈번하고 쉬운 작업을 수행해야한다고 생각해 봅시다. 개발 관리자, 고객, 어떤 것이 든 간단한 변경이 될 것으로 예상합니다.

따라서 UI에 확인란을 추가합니다 (쉬운 부분). 당신의 루핑 코드는 체크 박스의 수에 상관없이 이미 값을 연결했을 것입니다. 또한 데이터베이스 필드가 varchar 또는 기타 문자열 유형이므로 괜찮을 것입니다.

고객이나 귀하가 변경 전의 데이터를 보려고하면 어떻게됩니까? 기본적으로 왼쪽에서 오른쪽으로 직렬화합니다. 그러나 이제 3 이후의 값은 모두 1 문자만큼 떨어져 있습니다. 모든 기존 데이터로 무엇을 하시겠습니까? 응용 프로그램을 작성하고 데이터베이스에서 모두 꺼내고 새 질문 위치에 대한 기본값을 추가하도록 처리 한 다음 데이터베이스에 모두 저장 하시겠습니까? 한 주 또는 한 달 간격으로 새로운 값이 여러 개 있으면 어떻게됩니까? 위치를 이동하고 jQuery가 다른 순서로 처리하면 어떻게 될까요? 모든 데이터는 호스로 처리되며 다시 정렬하려면 다시 처리해야합니다.

긴밀한 키-값 관계를 제공하지 않는다는 전체 개념은 ludacris이며 조만간 문제에 빠질 것입니다. 이것을 고려하시는 분들은하지 마십시오. 스키마 변경에 대한 다른 제안은 괜찮습니다. 하위 테이블, 기본 테이블의 더 많은 필드, 질문-답변 테이블 등을 사용하십시오. 해당 데이터의 구조가 변경 될 수있는 경우 레이블이없는 데이터를 저장하지 마십시오.


$.extend($.expr[':'], {
        unchecked: function (obj) {
            return ((obj.type == 'checkbox' || obj.type == 'radio') && !$(obj).is(':checked'));
        }
    });

$("input:checked")
$("input:unchecked")

참고 URL : https://stackoverflow.com/questions/1965075/loop-through-checkboxes-and-count-each-one-checked-or-unchecked

반응형