2012-02-17 3 views
3

나는 다음과 같은 MySQL의 테이블이 : 나는 MySQL의 DB를 조회하여 양식을 채울 싶습니다확인하는 방법 라디오 버튼

| id | Title | Windows | Linux | IDE | GUI | RAD | 
------------------------------------------------------------ 
| 1 | Software_1 |  1 | 0 | 1 | 0 | 0 | 
------------------------------------------------------------ 
| 2 | Software_2 |  0 | 1 | 0 | 1 | 0 | 

합니다. 지금까지 입력 필드, 텍스트 영역 및 체크 상자를 채울 수 있었지만 라디오 버튼 채우기에 절대적으로 걸림돌이되었습니다. 유의하시기 바랍니다 MySQL의 저장을위한 부울 값 : 체크 박스 (윈도우, 리눅스) 및 라디오 버튼 (IDE는, GUI, RAD)이

이것은 dB에서 데이터를 검색하고 JSON으로 변환 PHP의 일부입니다

:

<form name="form" id="edit_review" method ="post" action="review.php"> 
    Language name: <input type="text" size="34" value="" name="title"/> 
    Windows <input type="checkbox" name="windows" /> 
    Linux <input type="checkbox" name="linux" /> 

    IDE <input type="radio" name="environment" id="ide" value="ide"/> 
    GUI <input type="radio" name="environment" id="gui" value="gui"/> 
    RAD <input type="radio" name="environment" id="rad" value="rad"/> 
</form> 

이것은 jQuery 코드는 다음과 같습니다

while($review = mysql_fetch_array($qry)) { 
    $arr = array('id_field' => $review['id'], 
       'title' => $review['title'], 
       'homepage' => $review['link_homepage'], 
       'windows' => $review['Windows'] == "1", 
       'linux' => $review['Linux'] == "1", 
       'ide' => $review['IDE'] == "1", 
       'gui' => $review['GUI'] == "1", 
       'rad' => $review['RAD'] == "1" 
    ); 
    echo json_encode($arr); 
} 

이 양식입니다

문자열 :

$(":input[name='" + key + "']").attr("checked", jsonOBJ[key]); 

만 체크 박스 작동합니다. 라디오 버튼 '이름'은 '환경'이며 3 개의 모든 라디오 버튼에 대해 동일해야합니다. 물론 위의 줄은 작동하지 않습니다. 올바른 확인란이 선택되어 있는지 ('경고'를 사용)

IDE <input type="radio" name="environment" id="ide" value="ide"/> 

내가 발견 을 : 나는로 변경 시도 :

$(":input[id='" + key + "']").attr("checked", jsonOBJ[key]); 

다음과 같이 나는 라디오 버튼에 'ID을'추가 그러나 LOOP가 계속되자 마자 즉시의 선택이 해제됩니다. 왜 라디오 버튼이 선택되지 않았고 체크 박스가 선택되지 않았습니까? 어떻게 해결할 수 있습니까?

+0

사용중인 jquery의 버전입니다. 이것은 .attr 또는 .prop를 사용하는지 여부에 달려 있습니다. 자세한 내용은이 답변을 참조하십시오. http://stackoverflow.com/questions/977137/how-to-set-radiobutton-in-jquery – bsimic

+0

오 마이 갓! ** SOLVED! ** 2 일간이 일에 보냈습니다! ** bsimic ** 고마워 ** .attr을 .prop으로 바꿨고, 그것은 훌륭하게 작동했습니다. – Nicero

+0

기꺼이 도와 드리겠습니다. 나는 그것을 "해결책"으로 추가 할 것입니다. 만약 당신이 대답으로 그것을 넣을 수 있다면 언젠가는 다른 사람들을 도울 수있을 것입니다! – bsimic

답변

0

이것은 바보 같은 제안처럼 보일 것입니다. 그러나 라디오 버튼을 올바르게 그룹화 했습니까?

라디오 버튼이 자체 선택을 취소하는 경우 다른 라디오 버튼이 동일한 그룹에 속하기 때문에 해당 라디오 버튼이 선택되었을 수 있습니다.

동일한 그룹의 모든 라디오 버튼을 검사하는 것처럼 보이지만 가능하지 않습니다. 하나만 검사 할 수 있습니다. 당신은 모든 옵션을 확인하려면

, 당신은 체크 박스를 사용하거나 하나를 확인할 수

뭔가 다른 각 라디오 버튼의 name 속성을 설정해야합니다

IDE <input type="radio" name="environment" id="ide" value="ide"/> 
GUI <input type="radio" name="environment" id="ide" value="ide"/> 
RAD <input type="radio" name="environment" id="ide" value="ide"/> 

하는 모든 될 수 있습니다 (라디오 버튼 처치 비록 점) 확인 :

IDE <input type="radio" name="environment1" id="ide" value="ide"/> 
GUI <input type="radio" name="environment2" id="ide" value="ide"/> 
RAD <input type="radio" name="environment3" id="ide" value="ide"/> 

또한 될 수 있음을 통해 속성을 변경 checked jQuery (참인지 아닌지)는 다른 라디오 버튼을 비활성화하므로 jQuery의 find()를 사용하여 루프를 반복하지 말고 해당 라디오 버튼을 확인하십시오.

+0

안녕하세요 JackalopeZero, 위의 코드 ('form'부분)에서 알 수 있듯이 세 개의 라디오 버튼이 올바르게 그룹화되어 있지만 (모두 동일한 이름 임) 각 ID와 VALUE가 다릅니다. – Nicero