2014-11-27 2 views
0

Sails.js을 사용하여 양식을 만듭니다. 양식에 여러 페이지가 있으며 사용자가 다음 페이지로 이동할 때마다 현재 페이지의 양식에 입력 한 데이터가 MySQL 데이터베이스에 제출됩니다.라디오 버튼은 항상 지정된 값과 관계없이 MySQL 데이터베이스에 false 값을 반환합니까?

양식의 한 페이지에는 값이 '예'이고 값이 '아니오'인 두 개의 라디오 단추가 있습니다. 어느 버튼이든 체크 된 값은 데이터베이스에 'author1Corresponding'열로 전송됩니다. 라디오 버튼에 대한 나의 이해에서, 만약 하나가 선택되면, 지정된 값, 즉 '예'또는 '아니오'가 데이터베이스에 제출되어야합니다. 그러나 둘 중 하나를 선택하면 author1Corresponding 값이 'false'가됩니다. 어느 쪽의 버튼도 체크되어 있지 않은 경우, author1Corresponding는 값 'null'를 취득합니다.

<label for="articleSubmission[author1Corresponding]">Is this Author the Corresponding Author?</label><br> 

    <input type="radio" class="radio" name="articleSubmission[author1Corresponding]" value="Yes"> Yes<br><br> 

    <input type="radio" class="radio" name="articleSubmission[author1Corresponding]" value="No"> No 

클래스 radio 그냥 display: inline있는 것으로 두 버튼의 스타일을 사용하고 있습니다 :

다음은 두 개의 버튼에 대한 html 형태로 내 코드입니다.

정의 된 값이 데이터베이스에 전송되지 않는 이유는 무엇이며 어떻게 해결할 수 있습니까?

+0

일반 양식과 함께 데이터를 정확히 전송하는 방법, 실제로 GET 또는 POST 데이터를 검사하여 실제로 서버로 전송 된 데이터를 확인하는 방법은 무엇입니까? – adeneo

+0

은 adeneo에 동의하고 params console.log (req.allParams())를 콘솔에서 빼고 db에있는 값을 확인하십시오 – Meeker

+0

@Meeker and adeneo, console.log (req.allParams())가 로그 아웃 될 때의 값 첫 번째 버튼을 클릭하면 "예"로 표시되고 두 번째 버튼을 클릭하면 "아니오"로 표시됩니다. 데이터베이스를 보면 클릭 한 값에 상관없이 값은 '0'으로 표시됩니다. – tedleahy

답변

0

해결책을 찾았습니다! 그래서 author1Corresponding은 값이 true 또는 false 일 수 있기 때문에 (ArticleSubmission 모델에서 정의 된) 부울 유형을가집니다.

"yes"및 "no"로 설정하는 대신 "true"및 "false"로 설정해야합니다. 이 작업이 완료되면 "예"를 클릭 한 경우 1로, "아니오"를 클릭 한 경우 0으로 데이터베이스에 전달됩니다.

워터 라인이 부울을 처리하는 방법과 관련이 있다고 생각합니다.

+0

이 답변이 표시된 이유를 알 수 없습니다. 사람들이 의견을 남기면 좋을 것입니다. – Meeker