2014-09-19 3 views
-1

I 자바 스크립트 변수가 내 PHP 코드에서 아약스유형 변환은 PHP로 변수

$.ajax({ 
    type: 'POST', 
    data: {value:value}, 
    url: 'ajax.php', 
    success: function (data) { 
     alert(data); 
    } 
}); 

를 사용하여 PHP 파일에이 변수를 보내고

var value=true; 
alert(typeof(value)); //Output: boolean 

부울 값을 포함해야 내가 값을 문자열로 가져 왔습니다.

왜 문자열로 값이 있습니까? 이 HTTP를 통해 다른 데이터 유형을 보낼 수 없습니다 때문에

문자열로 전송됩니다 사전

+0

왜 부울이 필요합니까? PHP는 자동으로 형변환을 수행합니다. PHP에서는'if ($ value == true) {...}'와 같이 체크 할 수 있습니다. – Zeusarm

답변

3

POSTDATA 모두에 감사드립니다.

숫자 데이터 유형은 PHP에 의해 추측됩니다 ("아아 숫자처럼 보이고 자동으로 변환합니다!"). 객체는 JSON 또는 다른 일련의 방법으로 나타낼 수 있습니다. 부울은 0/1 또는 "on"/ ""으로 표시되는 경향이 있습니다 (특히 체크 상자의 경우).

정확하게 전송할 값에 따라 부울로 예상되는 값을 수동으로 변환해야합니다.

// 0 or 1 
$value = !! $_POST['value']; 
$value = (bool) $_POST['value']; 

// 'true' or 'false' 
$value = 'true' === $_POST['value']; 

// 'on' or '' 
$value = !! $_POST['value']; 
$value = 'on' === $_POST['value'];